·
TypeScript 高级类型技巧
分享一些实用的 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 Partial<T> = { [P in keyof T]?: T[P]; };
实用工具类型
Pick 和 Omit
interface User { id: number; name: string; email: string; age: number; } type UserPublicInfo = Pick<User, 'name' | 'email'>; type UserWithoutId = Omit<User, 'id'>;
Record
type PageInfo = { title: string; }; type Page = 'home' | 'about' | 'contact'; const nav: Record<Page, PageInfo> = { home: { title: '首页' }, about: { title: '关于' }, contact: { title: '联系' }, };
总结
掌握这些类型技巧,可以让你的 TypeScript 代码更加类型安全。