TypeScript 是一种由 Microsoft 开发的开源编程语言,它是在 JavaScript 的基础上增加静态类型检查的。在 TypeScript 中,签名和类型标配是强类型编程的关键部分,它们帮助开发者定义和约束变量的使用,提高代码的可读性和可靠性。以下是一些 TypeScript 中的常见签名和类型:
1. 基本类型
number: 表示数字。string: 表示文本字符串。boolean: 表示布尔值,true 或 false。void: 表示没有返回值的函数。null: 表示无值的空引用。undefined: 表示变量未定义。
let num: number = 42;
let str: string = "Hello, TypeScript!";
let bool: boolean = true;
let nothing: void = () => console.log('This function does nothing');
let nothingType: null = null;
let undefinedType: undefined = undefined;
2. 任意类型
any: 表示任何类型的值。
let anyType: any = 4;
anyType = 'some string';
anyType = true;
3. 数组类型
- 可以通过指定元素类型来创建数组类型。
let numbers: number[] = [1, 2, 3];
let strings: string[] = ['one', 'two', 'three'];
- 使用数组泛型
<T>也可以指定数组元素的类型。
let numberArray: Array<number> = [1, 2, 3];
let stringArray: Array<string> = ['one', 'two', 'three'];
4. 元组类型
- 表示已知元素数量和类型的数组。
let x: [string, number];
x = ['hello', 10]; // 正确
// x = [10, 'hello']; // 错误,元素顺序和类型不匹配
5. 对象类型
- 使用
{}和类型注解定义对象。
interface Person {
name: string;
age: number;
}
let person: Person = {
name: 'Alice',
age: 30
};
- 可以直接使用对象字面量与类型注解。
let person: {name: string; age: number} = {
name: 'Alice',
age: 30
};
6. 函数类型
- 定义函数的参数类型和返回类型。
function add(a: number, b: number): number {
return a + b;
}
7. 联合类型
- 使用
|操作符来表示可以是多种类型中的一种。
let age: number | string = 30;
age = 30; // 正确
age = 'thirty'; // 正确
8. 交叉类型
- 使用
&操作符来表示可以是多个类型的特点。
interface Animal {
name: string;
}
interface Dog {
breed: string;
}
let myDog: Animal & Dog = {
name: 'Buddy',
breed: 'Golden Retriever'
};
9. 类型别名
- 创建类型别名以便于复用。
type StringArray = Array<string>;
let words: StringArray = ['Hello', 'TypeScript'];
10. 高级类型
- 如泛型、映射类型、条件类型等,这些用于创建更加灵活和强大的类型系统。
function identity<T>(arg: T): T {
return arg;
}
type StringOrNumber = string | number;
let myVariable: StringOrNumber = 10;
type Result = {
data: string[];
status: number;
};
以上类型和签名在 TypeScript 中是核心组成部分,它们共同构成了 TypeScript 强大的类型系统。正确使用这些类型可以大大提升 TypeScript 代码的健壮性和可维护性。
