TS基础数据类型及声明方式:

原始类型

let bool: boolean = truelet num: number = 123let str: string = 'abc'复制代码

数组类型

let arr1: number[] = [1,2,3]let arr2: Array<number> = [1, 2, 3]复制代码

元组

let tuple: [number, string] = [1, '2']// 可以给元组添加数据,但是添加后是无法读取的tuple.push(3) // [1, '2', 3]tuple[2] // 提示在索引为2的地方没有值复制代码

函数

// 方式一let add = (x: number, y: number) => x + y// 方法二let compute: (x: number, y: number) => numbercompute = (a, b) => a + b复制代码

对象

let obj = { x: number, y: string } = { x: 1, y: 'a' }
obj.x = 3复制代码

symbol

let s: symbol = Symbol()let s2 = Symbol()复制代码

undefined和null

let un: undefined = undefinedlet nu: null = null复制代码

定义为undefined和null的变量只能赋值定义的类型,但ts官方说unedfined和null是任何类型的子类型,也就是说可以赋值给任何类型的变量,可以在tsconfig里面设置

"strictNullChecks": false, 
复制代码

或者在声明变量的时候使用联合类型

let num: number | undefined | null = 1num = nullnum = undefined复制代码

void

通常用来表示没有返回值的函数

let fn = () => void复制代码

any

任意类型,如果变量定义为any类型,那么可以给变量设置任何类型的值

let x: anyx = 1x = []
x = () => {}复制代码

never

表示没有永远没有返回值的类型,例如抛出错误和死循环

let error = () => {throw new Error('error')
}let endless = () => {while(true) {}
}复制代码