TS基础数据类型及声明方式:
原始类型
let bool: boolean = true
let num: number = 123
let 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) => number
compute = (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 = undefined
let nu: null = null
定义为undefined和null的变量只能赋值定义的类型,但ts官方说unedfined和null是任何类型的子类型,也就是说可以赋值给任何类型的变量,可以在tsconfig里面设置
"strictNullChecks": false,
或者在声明变量的时候使用联合类型
let num: number | undefined | null = 1
num = null
num = undefined
void
通常用来表示没有返回值的函数
let fn = () => void
any
任意类型,如果变量定义为any类型,那么可以给变量设置任何类型的值
let x: any
x = 1
x = []
x = () => {}
never
表示没有永远没有返回值的类型,例如抛出错误和死循环
let error = () => {
throw new Error('error')
}
let endless = () => {
while(true) {}
}