JavaScript的类型分为两种,原始数据类型和对象类型。
TypeScript的原始数据类型
在 Javascript 包括布尔值(boolean)、数值(number)、字符串(string)、null、undefined以及ES新增的新类型, symbol 类型和ES10的新类型 BigInt 。
boolean
在TypeScript中,boolean定义布尔值类型,但是用构造函数Boolean构造的对象不是布尔值,而是布尔对象
let isDone: boolean = new Boolean(1); // tsc报错,new Boolean()返回的是一个Boolean对象
let isDo: boolean = Boolean(1); // 不会报错,因为Boolean()返回的是一个boolean类型的值
number
number类型可以表示数值类型的数字,包括二进制、八进制、10进制、16进制等
let decLiteral:number = 6;
// 16进制
let hexLiteral:number = 0xf00d;
// 8进制
let octalLiteral:number = 0o744;
// 2进制
let binaryLiteral:number = 0b1010;
// NaN
let notANumber:number = NaN;
// 无穷
let infinityNumber:number = Infinity;
string
string就是JavaScript中的string的数据类型
空值(void)
JavaScript中不存在空值,但是在TypeScript中,可以用void表示没有任何返回值的函数。
将void类型赋给一个变量没有意义,因为一个void数据类型的变量我们只能给他赋值undefined或者null。
null和undefined
在TypeScript中,可以使用null和undefined来定义这两个原始数据类型
let u:undefined = undefined;
let n:null = null;
与void的区别是,undefined,null这两个类型是所有类型的子类型,也就是说,null和undefined类型的变量,可以赋值给number类型的变量。而void类型的变量不能赋值给number类型的变量。
let u:undefined;
let num:number = u; // tsc不会报错
let v:void;
num = v; // tsc会报错