TypeScript 高级类型技巧
TypeScript 的类型系统远比想象中强大。本文将介绍一些实用的高级类型技巧。
条件类型
条件类型让我们可以根据类型条件选择不同的类型:
type IsString<T> = T extends string ? true : false
type A = IsString<string> // true
type B = IsString<number> // false
映射类型
映射类型可以基于已有类型创建新类型:
type Readonly<T> = {
readonly [P in keyof T]: T[P]
}
type Optional<T> = {
[P in keyof T]?: T[P]
}
模板字面量类型
TypeScript 4.1 引入了模板字面量类型:
type EventName<T extends string> = `on${Capitalize<T>}`
type ClickEvent = EventName<'click'> // 'onClick'
实战应用
这些高级类型在实际项目中非常有用,特别是在构建类型安全的 API 和工具函数时。
总结
掌握 TypeScript 高级类型,可以让我们编写更安全、更具表达力的代码。
