TypeScript 能手养成之旅 Day 5 原始型别

前言

前一天大致上了解一下,TypeScript 有支援哪些型别,从今天开始,将一一来每一个型别的定义和使用。

数字(Number)

TypeScript 的数字和 JavaScript 一样都是浮点数,其型别写法为 number

除了有支援 10 进位和 16 进位,另外在 ECMAScript 2015 引入 2 进位和 8 进位之後,也有支援。

let binaryLiteral: number = 0b1010; // ES6 中的二进位制表示法

let octalLiteral: number = 0o744; // ES6 中的八进位制表示法

经过编译过後

var binaryLiteral = 10; // ES6 中的二进位制表示法

var octalLiteral = 484; // ES6 中的八进位制表示法

字串(String)

String 表示方式和 JavaScript 一样,可以使用双引号 "" 或单引号 '',当然也可以使用 ES6 引入的模板字串(template literal)。

let name: string = `CY`;
let age: number = 28;
let sentence: string = `Hello, my name is ${ name }.

I'll be ${ age + 1 } years old next month.`;

布林值(Boolean)

let isFund: boolean = true;

Undefined & Null

Undefined 和 Null 在 TypeScript 里面一样各自为一个型别,都是指无效,但两者差异和在 JavaScript 一样。

let cy: undefined = undefined;
let foo: null = null;

而在预设的情况下,nullundefined 是所有型别的子型别,所以可以赋值给其他型别,如下:

let num: number = undefined;

上面例子能成立,主要 strictNullChecks 要是 false才行。不过预设 strictNullChecks 就已经是 false。

Symbol 符号

在 ES6 後,加入的基础型别,具有唯一性且不得改变。

而 symbol 的值是透过 Symbol 建构函式来创建。

let sym1 = Symbol("cy");
let sym2 = Symbol("cy");
sym1 === sym2; // false

symbol 也可以和字串一样成为物件属性的 key 值

let sym = Symbol();
let obj = {[sym]: "value"};
console.log(obj[sym]); // "value"

更多关於 symbol 的用法,TypeScript 都有支援。

结语

今天来了解原始型别是什麽,并去试着使用 TypeScript 来定义,万丈高楼平地起,稳固目前学习到的,为明天的挑战做准备。

参考文章

TypeSceipt 官网


<<:  [Day6]Select语句实作

>>:  Day16:四种不同的 Channel

Vue 2.X+ Router + Cli + VueX ( 六角课程笔记 )

1. 双向绑定 v-model 小技巧:不会让使用者点选到第一个option 2.渲染 v-for、...

Youtube Analytics API 教学 - 流量怎麽越来越差 'day' 维度

「鲑鱼均,因为一场鲑鱼之乱被主管称为鲑鱼世代,广义来说以年龄和脸蛋分类的话这应该算是一种 KNN 的...

【企业 WFH 新型态,文件加密护资安】活动分享

跟大家分享一个线上研讨会,有兴趣的可以参考喔~ 居家办公、分流上班等远距办公的企业模式,俨然默默地成...

Day 27 重构是否要排进待办清单里

重构是否要排进待办清单里 说到重构,我想只要是软件工程师应该都做过这件事情,只是小时候我们用的术语叫...

K8s - Kubernetes 指令参考笔记

K8s - Kubernetes 指令参考笔记 参考资料 参考资料1:Day 11 Kubernet...