00010-medium-tuple-to-union

Back

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