原始数据类型
原始类型基本与JavaScript相似,新加入了ES6的symbol类型。
布尔值(Boolean)
与JavaScript一样,都是true/false。
数字(Number)
在typescript中,所有的数字都是浮点数。浮点数类型同为 number。除了支持十进制和十六进制以外,typescript还支持ES6中引入的二进制以及八进制类型。二进制:0b;八进制:0o;十六进制:0x;
字符串(String)
与JavaScript中相同。可以用 " "或者 ' '来表示字符串。也可以用ES6新加入的模板字符串 ` `完成变量与字符串的拼接。
Null和Undefined
null和underfined基本与JavaScript中的相同,他们本身的作用不是很大,默认情况下null和undefined是所有类型的子类型。但是在指定了 --strictNullChecks标记(我理解相当于use strict),null和undefined只能赋值给Void和他们各自。此时想要传入一个null或者undefined值时就需要使用到联合类型。例如:string | null | undefined。
symbol
symbol是ES6新增的类型。symbol类型的值是通过symbol构造函数来创建的。
例如:let sym = Symbol();
symbol的好处在于 symbols是不可改变以及唯一的。在定义两个描述相同的symbol时,sym1 === sym2永远会返回false。symbol 创建的对象属性无法被Object.keys以及for...in枚举。使用场景:
1.用symbol 作为对象的属性名(key)。symbol 创建的对象属性无法被Object.keys以及for...in枚举。利用该特性,我们可以把一些不需要对外操作和访问的属性使用Symbol来定义。
2.需要定义唯一常量的时候。
3.使用Symbol定义类的私有属性/方法。