原始类型
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) {} }复制代码