JavaScript的类型分为两种,原始数据类型和对象类型。

TypeScript的原始数据类型

在 Javascript 包括布尔值(boolean)、数值(number)、字符串(string)、null、undefined以及ES新增的新类型, symbol 类型和ES10的新类型 BigInt 。

boolean

在TypeScript中,boolean定义布尔值类型,但是用构造函数Boolean构造的对象不是布尔值,而是布尔对象

  1. let isDone: boolean = new Boolean(1); // tsc报错,new Boolean()返回的是一个Boolean对象
  2. 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会报错