
TypeScript 高级类型技巧
•1 分钟阅读•前端
为什么需要高级类型
日常开发中用 interface 和基本类型就够了,但写库或复杂业务时,高级类型能让你的 API 更安全、更灵活。
条件类型
根据条件选择不同类型:
type IsString<T> = T extends string ? 'yes' : 'no';
type A = IsString<string>; // 'yes'
type B = IsString<number>; // 'no'
映射类型
遍历对象的 key 生成新类型:
type Readonly<T> = {
readonly [K in keyof T]: T[K];
};
模板字面量类型
TypeScript 4.1 引入,非常强大:
type EventName<T extends string> = `on${Capitalize<T>}`;
type ClickEvent = EventName<'click'>; // 'onClick'
总结
高级类型需要时间消化,但掌握后能显著提高代码质量。