1. 基础类型
-
布尔值 boolean
let isDone: boolean = false
-
数字 number
let count: number = 1
-
字符串 string
let str: string = 'hello world' let word: string = `${str}`
-
数组 Array
// 第一种:在元素类型后面接上[] let list: number[] = [1, 2, 3] // 第二种:数组泛型,Array<元素类型> let list: Array<number> = [1, 2, 3]
-
元组 Tuple
// 元组类型允许表示一个已知元素数量和类型的数组,各元素的类型不必相同 let x: [string, number] = ['hello', 10] let x: [string, number] = [10, 'hello'] // Initialize it incorrectly! 赋值顺序错误 // 当访问一个越界的元素,会使用联合类型代替 x[3] = 'string' // 字符串可以赋值给(string | number)类型 x[5] = true // 布尔值不是(string | number)类型,不可以赋值
-
枚举 enum
enum Color { Red, Green, Blue } let c: Color = Color.Green // 默认情况下,从0开始为元素编号,也可以手动指定成员的数值 enum Color = { Red = 1, Green, Blue } let c: Color = Color.Green enum Color = { Red = 1, Green = 3, Blue = 4 } let c: Color = Color.Green // 知道数字,可以查找相对应的名字 let colorName: string = Color[3]
-
任意值 Any
变量如果在声明的时候,未指定其类型,那么它会被识别为任意值类型
// 只知道一部分数据类型时 let list: any[] = [1, 'str', true] list[1] = 100
-
空值 Void
表示没有任何类型
// 表示没有任何返回值的函数 function alertName (name): void { alert(name) } // 声明一个 void 类型的变量没有什么用,因为你只能将它赋值为 undefined 和 null let unusable: void = undefined
-
Null 和 Undefined
// 原始数据类型 let u: undefined = undefined let n: null = null // 与 void 区别是,undefined 和 null 是所有类型的子类型 // 也就是说 undefined 类型变量,可以赋值给 number 类型变量 let num: number = undefined // 还可以这样 let u: undefined let num: number = u // void 类型变量不能赋值给 number 类型变量 let v: void let num: number = v // Type 'void' is not assignable to type 'number'.
-
Never
表示永不存在的值的类型