基础类型
数组
- 第一种: 元素类型[]
let arr: number[] = [1,2,3]
- 第二种: 数组泛型-Array<元素类型>
let arr: Array<number> = [1,2,3]
元组 Tuple
表示一个已知元素数量和类型的数组·
let arr: [string, number]
a = ['RenNing', 18]
当访问越界元素,会使用联合类型代替
arr[1] //18
arr[3] = 'world' // (string | number) 类型
枚举 enum
对JavaScript
标准数据类型的一个补充。
enum Color {Red, Green, Blue}
let c: Color = Color.Green //1
默认从 0开始为元素编号;可以手动指定成员值
enum Color{Red = 3, Green, Blue = 8}
let c: Color = Color.Green //4
通过枚举的值渠道他的名字
let colorName: string = Color[3] //red
Any
Void
void
类型像是与any
类型相反,它表示没有任何类型。
当一个函数没有返回值时,你通常会见到其返回值类型是 void
声明一个void
类型的变量没有什么大用,因为你只能为它赋予undefined
和null
Null 和 Undefined
let u: undefined = undefined;
let n: null = null;
默认情况下null
和undefined
是所有类型的子类型。
可以把 null
和undefined
赋值给number
类型的变量。
let a:number = null
当你指定了--strictNullChecks
标记,null
和undefined
只能赋值给void
和它们各自
在某处你想传入一个 string
或null
或undefined
,你可以使用联合类型string | null | undefined
Never类型
标识永不存在的值的类型
例如, never
类型是那些总是会抛出异常或根本就不会有返回值的函数表达式或箭头函数表达式的返回值类型;
never
类型是任何类型的子类型,也可以赋值给任何类型;然而,没有类型是never
的子类型或可以赋值给never
类型
function error(message: string) :never {throw new Error(message)
}
类型断言
形式一: “尖括号”语法
let someValue: any = 'this.is a string'
let strLength: number = (<string>someValue).length
形式二: as语法
let strLength: number = (someValue as string).length;