TypeScript 实用技巧
类型推断
类型守卫
使用类型守卫来缩小类型范围:
function isString(value: unknown): value is string {
return typeof value === 'string'
}
类型断言
使用 as 进行类型断言:
const element = document.getElementById('my-element') as HTMLElement
高级类型
泛型
创建可重用的泛型函数:
function identity<T>(arg: T): T {
return arg
}
条件类型
根据条件选择类型:
type IsString<T> = T extends string ? true : false
映射类型
基于现有类型创建新类型:
type Readonly<T> = {
readonly [P in keyof T]: T[P]
}
工具类型
Partial
使所有属性变为可选:
type Partial<T> = {
[P in keyof T]?: T[P]
}
Pick
选择指定的属性:
type Pick<T, K extends keyof T> = {
[P in K]: T[P]
}
Omit
排除指定的属性:
type Omit<T, K extends keyof T> = Pick<T, Exclude<keyof T, K>>
总结
掌握这些 TypeScript 技巧可以让你写出更类型安全、更优雅的代码。