英文:
Change Union type to Union of arrays of type
问题
可以创建一个辅助的泛型类型来对联合类型中的所有类型进行更改吗?
例如,这4个类型可以是一些具有许多属性的合适接口:
type A = 'a'
type B = 'b'
type C = 'c'
type D = 'd'
type unionForArr = A | B | C | D
type desired<T> = T extends A ? A[] :
T extends B ? B[] :
T extends C ? C[] :
T extends D ? D[] : never
type wrong = unionForArr[]
这里使用了条件类型,根据输入的类型 T
来确定返回的类型。如果 T
是 A
,则返回 A[]
,以此类推。
英文:
Is it possible to create a helper generic type to make changes to all types within a union?
For example these 4 types that could be some proper interfaces with lots of properties
type A = 'a'
type B = 'b'
type C = 'c'
type D = 'd'
type unionForArr = A | B | C | D
type desired<unionForArr> = A[] | B[] | C[] | D[]
type wrong = unionForArr[]
答案1
得分: 1
type ToArrays<T> = T extends T ? T[] : never;
type UnionForArr = 'a' | 'b' | 'c' | 'd';
type Desired = ToArrays<UnionForArr>; // 'a'[] | 'b'[] | 'c'[] | 'd'[]
英文:
type ToArrays<T> = T extends T ? T[] : never;
type UnionForArr = 'a' | 'b' | 'c' | 'd'
type Desired = ToArrays<UnionForArr> // 'a'[] | 'b'[] | 'c'[] | 'd'[]
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论