TypeScript 为 JavaScript 提供了强大的类型系统,让代码更加健壮和可维护。本文分享一些高级技巧。
条件类型
条件类型允许你根据类型关系创建新类型:
type IsString<T> = T extends string ? true : false;
type A = IsString<string>; // truetype B = IsString<number>; // false映射类型
映射类型可以基于现有类型创建新类型:
type Readonly<T> = { readonly [P in keyof T]: T[P];};
type Partial<T> = { [P in keyof T]?: T[P];};模板字面量类型
TypeScript 4.1 引入了模板字面量类型:
type EventName<T extends string> = `on${Capitalize<T>}`;type ClickEvent = EventName<'click'>; // 'onClick'类型推断
利用类型推断减少显式类型注解:
// 不需要显式返回类型function createUser(name: string, age: number) { return { name, age, createdAt: new Date() };}// 返回类型自动推断为 { name: string; age: number; createdAt: Date; }总结
掌握这些高级技巧,能让你的 TypeScript 代码更加优雅和类型安全。
