如何创建TypeScript泛型Transmuted<T>:将对象类型转为any
TypeScript 泛型 Transmuted 实现方案
你可以通过TypeScript映射类型来实现这个需求,核心思路是遍历传入类型T的所有属性,并将每个属性的类型统一替换为any。
具体实现代码
// 原Foo类 class Foo { foo: string; bar: number; baz: Date; } // 定义Transmuted<T>泛型 type Transmuted<T> = { [K in keyof T]: any; }; // 使用示例 type TransmutedFoo = Transmuted<Foo>;
效果说明
Transmuted<Foo>会生成如下类型结构,完全符合你的需求:
interface TransmutedFoo { foo: any; bar: any; baz: any; }
这里的keyof T会提取出类型T的所有属性名,[K in keyof T]则遍历这些属性名,将每个属性的类型设置为any,最终得到所有属性类型均为any的新类型。
内容的提问来源于stack exchange,提问作者user6750100
相关产品推荐
相关产品推荐

