深入解析TypeScript中的六个基本类型,为你打开强大的类型系统大门
2023-12-08 02:01:39
1. 元组
元组可以看作是数组的拓展,它表示已知元素数量和类型的数组。也就是说,元组中每一个位置上元素的类型都是确定的。元组的声明方式是使用方括号,并在方括号内列出元素的类型。例如:
let tuple: [string, number, boolean] = ["Hello", 10, true];
在这个例子中,tuple是一个元组,它包含三个元素:一个字符串、一个数字和一个布尔值。
2. never
never指那些永远不存在的值的类型。它是那些总会抛出异常或根本不会有返回值的函数表达式的返回值类型。例如:
function infiniteLoop(): never {
while (true) {
// 死循环
}
}
这个函数永远不会返回任何值,因此它的返回值类型是never。
3. 联合类型
联合类型实际是几个类型的结合,但是和交叉类型不同,联合类型是要求只要符合联合类型中的一个类型即可。联合类型的声明方式是使用管道符号 |,并将要联合的类型写在管道符号的两边。例如:
type StringOrNumber = string | number;
let value: StringOrNumber = "Hello";
value = 10;
在这个例子中,StringOrNumber是一个联合类型,它可以表示字符串或数字。value是一个StringOrNumber类型的变量,它可以存储字符串或数字。
4. 交叉类型
交叉类型是几种类型的交集,也就是说,交叉类型中的变量必须同时符合所有类型的要求。交叉类型的声明方式是使用 &,并将要交叉的类型写在 & 的两边。例如:
type Person = {
name: string;
age: number;
};
type Employee = Person & {
jobTitle: string;
salary: number;
};
let employee: Employee = {
name: "John",
age: 30,
jobTitle: "Software Engineer",
salary: 100000
};
在这个例子中,Person是一个类型,它包含name和age两个属性。Employee是一个交叉类型,它继承了Person的所有属性,还增加了jobTitle和salary两个属性。employee是一个Employee类型的变量,它包含了所有Person和Employee的属性。
5. 文字类型
文字类型表示一个特定的值,例如字符串、数字、布尔值或null和undefined。文字类型的声明方式是直接写出文字值。例如:
let str: string = "Hello";
let num: number = 10;
let bool: boolean = true;
let nul: null = null;
let undef: undefined = undefined;
在这个例子中,str是一个字符串类型的变量,它存储了值"Hello"。num是一个数字类型的变量,它存储了值10。bool是一个布尔类型的变量,它存储了值true。nul是一个null类型的变量,它存储了值null。undef是一个undefined类型的变量,它存储了值undefined。
6. 枚举类型
枚举类型是表示一组相关值的类型。枚举类型的声明方式是使用enum,并在enum关键字后面写出枚举类型的名称和大括号。大括号内列出枚举类型的成员。例如:
enum Colors {
Red,
Green,
Blue
}
let color: Colors = Colors.Red;
在这个例子中,Colors是一个枚举类型,它包含三个成员:Red、Green和Blue。color是一个Colors类型的变量,它存储了值Colors.Red。