原始类型

布尔值

boolean 包含 true/false

  1. const isDone: boolean = false

数字

number 浮点数,并且支持 二进制、八进制、十进制、十六进制字面量

  1. const decLiteral: number = 6
  2. const hexLiteral: number = 0xf00d // 十六进制
  3. const binaryLiteral: number = 0b1010 // 二进制
  4. const octalLiteral: number = 0o744 // 八进制

字符串

string

  1. const name: string = 'bob'

null 和 undefined

  1. const u: undefined = undefined
  2. const n: null = null

any

any 任意类型

  1. let notSure: any = 4
  2. notSure = 'maybe a string instead'
  3. notSure = false // okay, definitely a boolean

void

某种程度上来说,void 类型像是与 any 类型相反,它表示没有任何类型。 当一个函数没有返回值时,你通常会见到其返回值类型是 void

  1. function warnUser(): void {
  2. console.log('This is my warning message');
  3. }
  4. // 声明一个void类型的变量没有什么大用,因为你只能为它赋予 undefined 和 null
  5. let unusable: void = undefined

Object 类型

object 表表示非原始类型,也就是除 number,string,boolean,symbol,null 或 undefined 之外的类型。

  1. const foo: object = function () {} // [], {}
  2. const obj: { foo: number, bar: string } = { foo: 123, bar: 'string' }

数组类型

元素后跟 []

  1. const list: number[] = [1, 2, 3]

数组泛型

  1. const list: Array<number> = [1, 2, 3]

元祖 Tuple

元组类型允许表示一个已知元素数量和类型的数组,各元素的类型不必相同。 比如,你可以定义一对值分别为 string 和 number 类型的元组

  1. let tuple: [string, number] = ['foo', 1]

枚举

enum 类型是对JavaScript标准数据类型的一个补充

  1. // 默认从 0 开始,依次递增
  2. enum Color {
  3. Red,
  4. Green,
  5. Blue
  6. } // 0, 1, 2
  7. let c: Color = Color.Green; // 1
  8. // 或者,全部都采用手动赋值
  9. enum Color {
  10. Red = 1,
  11. Green = 2,
  12. Blue = 4
  13. }
  14. let c: Color = Color.Green; // 2
  15. // 枚举类型提供的一个便利是你可以由枚举的值得到它的名字
  16. enum Color {
  17. Red = 1,
  18. Green,
  19. Blue
  20. } // 1, 2, 3
  21. let colorName: string = Color[2]; // Green

函数类型

  1. function add(x: number, y: number): number {
  2. return x + y
  3. }
  4. let myAdd = function(x: number, y: number): number { return x + y }