type-fest 是面向生产级 TypeScript 应用的编译期工具类型库,提供 180+ 工具类型,零运行时开销。当内置 Partial、Pick、Omit 等不够用时使用,适合 API 请求/响应类型转换(snake_case 与 camelCase 互转)、深层配置合并与部分更新、只读不可变状态、JSON 序列化类型安全、严格删除/选取对象属性、类型安全路径访问、异步函数返回类型提取与条件类型操作。不适用于运行时校验(应配合 zod/yup/io-ts)或运行时类型守卫。安装:npm install type-fest。建议按需导入以优化 tree-shaking,例如 import type {Except, Merge, PartialDeep, Jsonify} from 'type-fest'。常用类型包括:Except<T, K> 严格删除属性并校验键存在;Merge<T, U> 类型安全合并对象;PartialDeep<T> 递归可选属性;Jsonify<T> 处理 JSON 序列化(Date 转 string、Map/Set 转 {}、函数与 undefined 移除);ReadonlyDeep<T> 深层只读;CamelCase 等命名转换;LiteralUnion 保留自动补全的联合类型;AsyncReturnType 解包 Promise;RequireAtLeastOne 要求至少一个字段;ConditionalPick 按类型选取属性;Paths 生成类型安全属性路径;Simplify 展平交叉类型。限制:类型仅在编译期生效,不做运行时校验;避免过度嵌套 PartialDeep/ReadonlyDeep(建议 3-4 层内);LiteralUnion 不用于已收窄类型。完整列表见 https://github.com/sindresorhus/type-fest。
type-fest
编程与开发
更新于 10-15 22:39