TypeScript 是 JavaScript 的超集,它为 JavaScript 提供了静态类型检查、类和接口等特性。在初学者掌握基本类型后,TypeScript 的进阶用法涉及到更复杂的类型系统、装饰器、泛型等内容。
1. 高级类型
1.1 联合类型(Union Types)
联合类型允许一个变量可以是几种类型中的任何一种。使用 |
分隔不同的类型。
function greet(person: string | string[]): void {
if (typeof person === 'string') {
console.log(`Hello, ${person}`);
} else {
console.log(`Hello, ${person.join(' and ')}`);
}
}
greet('John'); // Hello, John
greet(['John', 'Jane']); // Hello, John and Jane
常见问题:
-
使用联合类型时,如何在代码中区分不同类型?
解决方案:
- 使用类型保护(
typeof
或instanceof
)来区分具体类型。
- 使用类型保护(
1.2 交叉类型(Intersection Types)
交叉类型将多个类型合并为一个类型。这个类型包含所有交叉类型的属性。