TypeScript-数据类型

布尔类型(boolean)

false true

1
2
let flag: boolean = false;
let type: boolean = true;

数字类型(number)

1
let num: number = 1;

字符串类型(string)

1
let str: string = '123';

数组类型(array)

1
2
let list: number[] = [1, 2, 3];
let arr: Array<number> = [1, 2, 3];

元组(tuple)

1
2
3
let x: [string, number];
x = ['1', 2];
x.push('2'); // 超过定义个数,会使用联合类型替代(string | number)

枚举(enum)

1
2
3
4
5
6
7
8
9
10
enum Color {
Red,// 0
Green = 2,// 2
Blue // 3
}

let color: Color = Color.Blue;

let colorStr: string = Color[3];
console.log(colorStr); // Blue, 找到3的对应值

任意类型(any)

1
2
3
let list: any[] = [1, true, "free"];

list[1] = 100;

null 和 undefined

默认情况下nullundefined是所有类型的子类型。 (除了指定 --strictNullChecks标记 )

void类型

当一个函数没有返回值时,其返回值类型是 void

只能为它赋予undefined和null

never类型

never类型表示的是那些永不存在的值的类型

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
// 返回never的函数必须存在无法达到的终点
function error(message: string): never {
throw new Error(message);
}

// 推断的返回值类型为never
function fail() {
return error("Something failed");
}

// 返回never的函数必须存在无法达到的终点
function infiniteLoop(): never {
while (true) {
}
}

类型断言

  1. 尖括号

    1
    2
    3
    let someValue: any = "this is a string";

    let strLength: number = (<string>someValue).length;
  1. as语法

    1
    2
    3
    let someValue: any = "this is a string";

    let strLength: number = (someValue as string).length;
0%