原始数据类型
JavaScript中的类型分为两种:原始数据类型(primitive data types)和对象类型(Object types)。
栈:原始数据类型(Undefined,Null,Boolean,Number、String)
堆:引用数据类型(对象、数组、函数)
原始数据类型包括:布尔值,数值,字符串,null,undefined以及es6中的新类型Symbol和BigInt。
本节主要介绍前五种原始数据类型在 TypeScript 中的应用。
布尔值
在ts中使用boolean定义布尔值类型:
let isDone:boolean = false
注意,这里是boolean类型,Boolean(1)返回的是一个布尔值,但是通过new Boolean(1)返回的是一个Boolean类型的对象,所以这里使用let isDone:boolean = new Boolean(1)
会编译报错。
数值
使用number
定义数值类型:
let decliteral: number = 6;
let hexLiteral: number = 0xf00d; // es6中的十六进制表示法
let binaryLiteral: number = 0b1010; // es6中的二进制表示法
let ocatalLiteral: number = 0o744; // es6中的八进制表示法
let notANuber:number = NaN;
let infinityNuber:number = Infinity;
字符串
使用string
定义字符串类型:
let myName:string = 'Tom';
let myAge:number = 25;
let sentence:string = `hello,my name is ${myName},I'll be ${myAge + 1} years old next month. `
空值
JavaScript中没有空值(Void)的概念,在TypeScript中,可以用void
表示没有任何返回值的函数。
function alertName(): void {
alert('My name is Tom');
}
声明一个 void
类型的变量没有什么用,因为你只能将它赋值为 undefined
和 null
:
let unusable1: void = undefined;
let unusable2: void = null;
但是不能开启严格模式,只有在"strict": false
的情况下才能赋值null
否则编译会报错。
Null 和 Undefined
在TypeScript中,可以使用null
和undefined
来定义这两个原始类型:
let u:undefined = undefined
let n:null = null
与void
的区别是,undefined
和null
是所有类型的子类型。也就是说undefined
和null
类型的变量,可以复制给所有类型的变量。(这里同样不能开启严格模式)
let u:undefined = undefined
let n:null = null
let s:string = u;
s = n;
let num:number = u;
num=n;
let bl:boolean =u;
bl=n;
let v:void = u;
v=n;
而void
类型的变量不能赋值给其他类型的变量:
let u:void;
let num:number = u // 不能将类型“void”分配给类型“number”。