1、类型断言:
有时 TypeScript 无法正确地推断类型,你可以使用类型断言告诉编译器你知道变量的确切类型。
let value: any = "Hello, TypeScript!";
let strLength: number = (value as string).length;
2、使用泛型:
泛型允许你编写更通用的代码,能够处理多种类型而不是针对特定类型。这对于编写可重用的函数和数据结构非常有用。
function identity<T>(arg: T): T {
return arg;
}
let result = identity<string>("Hello, TypeScript!");
3、使用非空类型:
TypeScript 支持 Nullish Coalescing 运算符 ?? 和 Optional Chaining 运算符 ?.,它们可以更安全地处理可能为 null 或 undefined 的值。
let name = person?.name ?? "Unknown";
4、函数重载:
TypeScript 支持函数重载,允许你为同一个函数提供多个不同的类型签名,以根据不同的参数类型执行不同的逻辑。
function greet(name: string): string;
function greet(age: number): string;
function greet(value: any): string {
if (typeof value === "string") {
return `Hello, ${value}!`;
} else if (typeof value === "number") {
return `Hello, age ${value}!`;
}
return "Hello!";
}
5、交叉类型和联合类型:
了解如何使用交叉类型(Intersection Types)和联合类型(Union Types)来组合和描述多个类型的行为。
type Admin = {
name: string;
role: "Admin";
};
type User = {
name: string;
role: "User";
};
type Person = Admin | User;