// 你的答案
type Flatten<T extends unknown[], U extends unknown[] = []> = T extends [infer H, ...infer R] ? H extends unknown[] ? [...Flatten<H, [...U]>, ...Flatten<R>] : Flatten<R, [...U, H]> : U;
Solution by HelloGGG #33413
type Flatten<T extends any[], U extends any[] = []> = T extends [infer F, ...infer R]
? F extends any[] ? Flatten<[...F, ...R], [...U]> : Flatten<[...R], [...U, F]>
: U;
Solution by ZhipengYang0605 #32826
type Flatten<T extends any[]> = T extends [infer R, ...infer U] ? (R extends any[] ? [...Flatten<R>, ...Flatten<U>] : [R, ...Flatten<U>]) : []
Solution by Leen27 #32804
type Flatten<T extends unknown[]> = T extends []
? []
: T extends [infer A, ...infer B]
? A extends unknown[]
? [...Flatten<A>, ...Flatten<B>]
: [A, ...Flatten<B>]
: []
Solution by dev-hobin #32403
type Flatten<T extends any[]> = T extends [infer first, ...infer list]
? first extends [...infer R]
? Flatten<[...R, ...list]>
: [first, ...Flatten<list>]
: T
Solution by nivenice #32394
type Flatten<A extends any[]> = A extends [infer F, ...infer R]
? F extends any[]
? [...Flatten<F>, ...Flatten<R>] : [F, ...Flatten<R>]
: []
Solution by shuxiaoduo #32204
// your answers
type Flatten<T extends unknown[]> = T extends [] ? []:
T extends [infer L, ...infer R] ?
L extends unknown[] ? [...Flatten<L>,...Flatten<R>] :
[L,...Flatten<R>]
: T
Solution by pea-sys #32160
type Flatten<T extends any[], K extends any[] = []> = T extends []
? K
: T extends [infer F, ...infer R]
? F extends any[]
? Flatten<[...F, ...R], [...K]>
: Flatten<[...R], [...K, F]>
: T;```
Solution by jinyoung234 #31738
type Flatten<T extends any[], A extends any[] = []> = T extends [infer F, ...infer R]
? F extends any[] ? [...A, ...Flatten<F>, ...Flatten<R>] : [...A, F, ...Flatten<R>]
: A;
Solution by kai-phan #31642
type Flatten<T> = T extends []
? []
: T extends [infer First, ...infer Rest]
? First extends unknown[]
? [...Flatten<First>, ...Flatten<Rest>]
: [First, ...Flatten<Rest>]
: T
Solution by SazonovV #31332
type Flatten<T extends any[], R extends any[] = []> = T extends [infer A, ...infer B] ? A extends Array<any> ? Flatten<[...A, ...B], R> : Flatten<B, [...R, A]> : R;
Solution by eward957 #31245
type Flatten<T extends any[]> = T extends [infer First, ...infer Rest]
? First extends any[]
? [...Flatten<First>, ...Flatten<Rest>]
: [First, ...Flatten<Rest>]
: [];
Solution by zyh-ultra #31142
type Flatten<T extends any[]> = T extends [infer F, ...infer Rest]
? F extends any[]
? Flatten<[...F, ...Rest]>
: [F, ...Flatten<Rest>]
: T
Solution by Minato1123 #31094
type Flatten<T extends unknown[]> =
T extends [infer A, ...infer R]
? A extends unknown[]
? [...Flatten<A>, ...Flatten<R>]
: [A, ...Flatten<R>]
: [];
Solution by ricky-simple #31022
// 你的答案
type Flatten<T extends unknown[]> = T extends [infer L, ...infer Rest] ? (
L extends unknown[] ? [...Flatten<L>, ...Flatten<Rest>] : [L, ...Flatten<Rest>]
) : T;
Solution by CDSP98 #31005
// your answers
type Flatten<T extends any[]> = T extends [infer F, ...infer R]
? F extends any[]
? [...Flatten<F>, ...Flatten<R>]
: [F, ...Flatten<R>]
: T
Solution by CharlieLoong #30939
// 解答をここに記入
type Flatten<T extends unknown[]> = T extends [infer F, ...infer R] ? [ ...(F extends unknown[] ? Flatten<F> : [F]) , ...Flatten<R>] : []
Solution by Kakeru-Miyazaki #30858
type Flatten<T extends any[], K extends any[] = []> = T extends [
infer F,
...infer R
]
? F extends any[]
? Flatten<[...F, ...R], K>
: Flatten<R, [...K, F]>
: K;
Solution by leejaehyup #30827
type Flatten<T> = T extends [] ? [] : T extends [infer S, ...infer Q] ? [...Flatten<S>, ...Flatten<Q>] : [T];
Solution by hskwon5170 #30547
type Flatten<T extends Array<any>> = T extends [infer A, ...infer B] ? [...A extends Array<any> ? Flatten<A> : [A], ...Flatten<B>] :[]
//if first is not array,we will change it to array,so we can use '...[]'
Solution by MrRabbit1993 #30444
// your answers
type FlattenAny<T extends any> =
T extends [] ? [] :
T extends [infer F, ...infer R]
? [...FlattenAny<F>, ...FlattenAny<R>]
: [T]
type Flatten<T extends unknown[]> = FlattenAny<T>
Solution by inevermore #30412
type Flatten<T> =
T extends [infer A, ...infer B]
? A extends any[]
? [...Flatten<A>, ...Flatten<B>]
: [A, ...Flatten<B>]
: T;
Solution by wouldRewind #30386
type Flatten<T extends any[], R extends any[] = []> = T extends [infer F, ...infer Rest]
? Flatten<Rest, F extends any[] ? Flatten<F, R> : [...R, F]>
: R;
Solution by kai-phan #30352
type Flatten<T extends unknown[]> = T extends [unknown[], ...infer R]
? [...Flatten<T[0]>, ...Flatten<R>]
: T extends [infer H, ...infer R]
? [H, ...Flatten<R>]
: T;
Solution by renatoprime #30335
type Flatten<T> = T extends []
? []
: T extends [infer First, ...infer Rest]
? [...Flatten<First>, ...Flatten<Rest>]
: [T]
type flatten = Flatten<[1, 2, [3, 4], [[[5]]]]> // [1, 2, 3, 4, 5]
Solution by rxMATTEO #30095
// 你的答案
type Flatten<T extends any[]> =
T extends [infer F, ...infer Rest] ?
F extends any[] ? [...Flatten<F>, ...Flatten<Rest>] : [F, ...Flatten<Rest>] : T
Solution by YE840926098 #30024
type Flatten<T extends unknown[]> = T extends [infer F, ...infer Rest] ? F extends unknown[] ? [...Flatten<F>, ...Flatten<Rest>]: [F, ...Flatten<Rest>] : []
Solution by myxmxy1234 #29807
type Flatten<T extends any[], U extends any[] = []> =
T extends [infer First, ...infer Rest]
? First extends any[]
? Flatten<[...First, ...Rest], U>
: Flatten<Rest, [...U, First]>
: U
Solution by maximallain #29446
type Flatten<S extends unknown[], T extends unknown[] = []> =
S extends [infer A, ...infer Rest] ?
A extends unknown[] ? Flatten<[...A, ...Rest], T> : Flatten<[...Rest], [...T, A]>
: T
Solution by MohammadArasteh #29415
type Flatten<U> = U extends [] ? [] : U extends [infer First, ...infer Rest] ? [...Flatten<First>, ...Flatten<Rest>] : [U]
Solution by Yirujet #29236