类型声明

  • 类型声明是TS非常重要的一个特点。

  • 通过类型声明可以指定TS中变量(参数、形参)的类型。

  • 指定类型后,当为变量赋值时,TS编译器会自动检查是否复核类型声明,复核则赋值,否则报错。

  • 简而言之,类型声明给变量设置了类型,使得变量只能存储某种类型的值。

  • 语法:

    1
    2
    3
    4
    5
    6
    7
    let 变量: 类型;

    let 变量: 类型 = 值;

    function fn(参数: 类型, 参数: 类型): 类型{
    ...
    }

基本类型

1、字符串: string

1
let str:string = 'hello word'

2、布尔值: boolean

1
let isShow:boolean = true

3、数字: number

1
let age: number = 23;

4、数组: array

1
let list: number[] = [1, 2, 3];

5、元组: tuple

元组类型允许表示一个已知元素数量和类型的数组,各元素的类型不必相同, 对应位置的类型需要相同。

1
2
3
4
5
let arr: [string, number];

arr = ["aaa", 12]; // Ok

arr = [12, "222"]; // Error

6、枚举: enum

JavaScript标准数据类型的一个补充,使用枚举类型可以为一组数值赋予友好的名字。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
enum weeks {

Mon,

Tue,

Wed,

}

let day: weeks = weeks.Mon;

console.log(day); // 0

console.log(weeks[0]); // Mon

console.log(weeks["Mon"]); // 0

7、any

any, 为不清楚类型的变量指定一个类型, 不通过类型检查器检测。

1
2
3
4
5
let x: any = "aaa";

x = 12;

x = false;

8、void

void类型像是与any类型相反,表示没有任何类型。当一个函数没有返回值时,其返回值类型通常是 void

1
2
3
4
5
function hello(): void {

console.log("11111");

}

声明一个void类型的变量没有什么大用,因为你只能为它赋予undefinednull

1
let unusable: void = undefined;

9、undefined null

1
let x1: undefined;

10、object

1
let obj: object = { a: "1" };

联合类型

1
2
3
4
5
let x2: number | string | boolean;

x2 = 2;

x2 = "22";

类型推论

1
2
3
let x3 = 3; // 推论x3为number类型

let x4;

类型断言

1
2
3
4
5
let x5: number | string | boolean = "this is a string";
// 尖括号方法
let strLen: number = (<string>x5).length;
// as语法
let strLen1: number = (x5 as string).length;

*注:可凭个人喜好用以上方法,但当你在TypeScript里使用JSX时,只有as语法断言是被允许的。