Typescript自定义映射类型



我正试图想出一个映射的type来将对象的属性从类型Vector转换为Array

我现在有这个

type ToArray<T> = { 
[P in keyof T]: T[P] extends Vector<any> ? Array<any> : T[P] 
}

如何正确映射any类型?我想保留原始的泛型类型。

您可以使用条件类型的推理行为来获得Vector:的原始参数

type ToArray<T> = { 
[P in keyof T]: T[P] extends Vector<infer U> ? Array<U> : T[P] 
}

有关infer U的更多详细信息,请参阅此处的"条件类型中的类型推理"一章。

最新更新