type TupleToUnion<T extends readonly any[]> = T[number]
Solution by gakki-san #36377
type TupleToUnion<T extends unknown[]> = T[number];
Solution by asylbekduldiev #36368
// 你的答案
type TupleToUnion<T extends readonly any[]> = T[number]
Solution by goddnsgit #36178
type TupleToUnion<T extends any[]> = T[number];
Solution by AleksandrShcherbackov #36160
type TupleToUnion<T> = T extends any[] ? T[number] : never
Solution by rize-the-flag #35987
type TupleToUnion<T> = T extends [infer U,...infer P] ? U | TupleToUnion<P> : never
Solution by tac-tac-go #35891
type TupleToUnion<T extends unknown[]> = T[number]
Solution by EvilEl #35839
This is a Typescript syntax
In TypeScript, when you index a tuple type with number, it returns a union of all the types of the elements in that tuple.
For example, if T
is [123, '456', true]
, T[number]
would result in the union 123 | '456' | true
.
type TupleToUnion<T extends any[]> = T[number]
Solution by vaclock #35765
type TupleToUnion<T extends any[]> = T extends [infer F, infer S, ...infer Rest] ? TupleToUnion<F | S, ...Rest> : T[0]
Solution by TroyB95 #35746
type TupleToUnion<T extends readonly any[]> = T extends Array<infer R> ? R : never
Solution by n2ptune #35694
// your answers
type TupleToUnion<T extends readonly unknown[]> = T[number];
Solution by Sathiyapramod #35521
type TupleToUnion<T extends Array<unknown> | ReadonlyArray<unknown>> = T[number]
Solution by gangnamssal #35508
type TupleToUnion<T extends readonly unknown[]> = T[number]
Solution by RanungPark #35451
// your answers
type Arr = ["1", "2", "3"];
type TupleToUnion<T extends any> = T[any];
const foo: TupleToUnion<Arr> = "1";
Solution by Sathiyapramod #35410
type TupleToUnion<T> = T extends [infer p, ...infer q] ? p | TupleToUnion<q> : never;
Solution by zhouchunguang2020 #35364
type TupleToUnion<T extends any[]> = T extends (infer U)[] ? U : never
Solution by yaser-alazm #35316
type TupleToUnion<T extends unknown[]> = T[number];
Solution by ClarityOfMind #35275
type TupleToUnion<T extends readonly any[]> = T[number]
Solution by HrOkiG2 #35214
// 你的答案
type TupleToUnion<T extends any[]> = T[number]
Solution by HoseaGuo #35161
type TupleToUnion<T extends unknown[]> = T extends never
? never
: T extends [infer First, ...infer Rest]
? First | TupleToUnion<Rest>
: never
Solution by eunsukimme #35120
type TupleToUnion<T extends any[]> = T[number];
Solution by raeyoung-kim #34999
// 你的答案
Solution by lizncoder #34996
type TupleToUnion<T extends any[]> = T[number];
Solution by 56aiden90 #34921
type TupleToUnion<T extends Array<unknown>> = T['length'] extends 0 ? never : T[number]
Solution by linkinzhiyuan #34908
type TupleToUnion<T extends readonly any[]> = T[number]
Solution by lfz9527 #34830
Just extend T's type in Array. Then we can define the type in typeof T's elements.
type TupleToUnion<T extends any[]> = T[number];
Solution by dev-jaemin #34632
type TupleToUnion<T extends unknown[]> = T[number]
Solution by binhdv155127 #34622
type TupleToUnion<T extends any[]> = T extends (infer I)[] ? I : never
// your answers
Solution by Rustamaha #34596
type TupleToUnion<T extends any[]> = T[number]
Solution by devshinthant #34563
type TupleToUnion<T extends any[]> = T[number];
T[number]使用了索引访问类型(Indexed Access Types),它表示从类型T中通过数字索引能够访问到的所有属性的类型,对于数组或元组来说,这意味着它所有的类型。
Solution by wxh-cyber #34469