SuperAPI AI 工具集

dry-types

通用与其它

查看项目

更新于 10-16 00:06

技能介绍

用途:在 TypeScript 中避免重复定义类型。当接口之间共享字段、多个类型有相同属性子集、希望一个类型是另一个的子集、类型需要自动保持同步,或需要类型的可选/部分版本时使用。

主要能力:用 extends 在基础类型上添加字段;用 Pick<T, K> 选取字段;用 Omit<T, K> 移除字段;用 Partial<T> 生成全可选版本;用 Required<T>、Readonly<T> 调整修饰符;用 keyof 获取键的联合类型;用 typeof 从值派生类型;用 ReturnType<F>、Parameters<F> 获取函数返回值和参数类型;用映射类型及 as 键重映射构造新类型;索引联合类型可提取判别字段。同态映射类型会保留可选与 readonly 修饰符。

使用方式:先确定单一事实来源类型,再按需派生。例如 interface PersonWithBirthDate extends Person { birth: Date; };type TopNavState = Pick<State, 'userId' | 'pageTitle' | 'recentFiles'>;update(options: Partial<Options>);type Options = typeof DEFAULTS;type UserInfo = ReturnType<typeof getUserInfo>。

适用场景:基础类型加扩展、输入/输出类型(如 CreateUserInput、UpdateUserInput)、共享函数签名等。

限制:不要对仅结构相似但语义不同的类型强行抽象,例如 Product 与 Customer 的 id、name 含义不同,若无法有意义地命名该抽象,可能属于过早抽象。资料未提供安装命令、平台或收费信息。