type Reverse<T extends any[],L extends any[] = []> = T extends [infer P,...infer R] ? Reverse<R,[P,...L]> : L
Solution by tac-tac-go #36044
type Reverse<T extends any[], TReversed extends any[] = []> =
TReversed['length'] extends T['length']
? [...TReversed, ...T]
: T extends [...infer R, infer L]
? Reverse<R, [...TReversed, L]>
: [...TReversed, ...T]
Solution by rize-the-flag #36002
infer
+ 递归
type Reverse<T, Arr extends unknown[] = []> = T extends [infer F, ...infer R] ? Reverse<R, [F, ...Arr]> : Arr;
Solution by vaclock #35963
type Reverse<T extends any[],Acc extends any[] = []> =
T extends [infer F,...infer Rest]
? Reverse<Rest,[F,...Acc]>
: Acc
Solution by EvilEl #35868
type Reverse<T extends any[], A extends any[] = []> = T extends [...infer Rest, infer R] ? Reverse<Rest, [...A, R]> : A
Solution by wendao-liu #35180
type Reverse<T> = T extends [...infer Rest,infer Last] ? [Last, ...Reverse<Rest>] : T
Solution by devshinthant #34951
type Reverse<T extends string[]> = T extends [infer First, ...infer Rest extends string[]] ? [...Reverse<Rest>, First&string] : []
Solution by maximallain #34772
// 你的答案
type Reverse<T extends any[], U extends any[] = []> = T extends [infer F, ...infer S] ? Reverse<S, [F, ...U]> : U
Solution by Jayce-liang #34764
// your answers
type Reverse<T> = T extends [...infer F, infer L] ? [L,...Reverse<F>] : T
Solution by gobielJonathan #34529
type Tail<T extends unknown[]> = T extends [unknown, ... infer R] ? R : never;
type Reverse<
Xs extends unknown[],
Acc extends unknown[] = []
> = Xs extends [] ? Acc : Reverse<Tail<Xs>, [Xs[0], ...Acc]>
Solution by souzaramon #34267
type Reverse<T extends any[], U extends any[] = []> = T extends [...infer rest, infer R] ? Reverse<rest, [...U, R]> : U
Solution by ouzexi #34057
type Reverse<T extends any[], A extends any[] = []> = T extends [${infer S}
, ...infer AA] ? Reverse<AA, [S, ...A]>:A
Solution by rookiewxy #33854
type Reverse<T extends any[]> = T extends [infer F, ...infer L] ? [...Reverse<L>, F] : T;
Solution by ZhipengYang0605 #33225
// your answers
type Reverse<T extends any[]> = T extends [...infer L, infer R]? [R, ...Reverse<L>] : T
Solution by pea-sys #32963
// your answers
type Reverse<T extends readonly any[]> = T extends [...infer Rest,infer Last] ? [Last,...Reverse<Rest>]:T;
Solution by sciencefunq #32922
type Reverse<T extends unknown[], Acc extends unknown[] = []> = T extends [infer F, ...infer Rest]
? Reverse<Rest, [F, ...Acc]>
: Acc
Solution by ZhulinskiiDanil #32728
type Reverse<T extends any[]> = T extends [infer F, ...infer Rest]
? [...Reverse<Rest>, F]
: [];
Solution by kai-phan #32516
type Reverse<T, U extends unknown[] = []> = T extends [...infer F, infer Last]
? F["length"] extends 0
? [...U, Last]
: Reverse<F, [...U, Last]> //
: [];
Solution by gasmg #32208
type Reverse<T extends unknown[]> = T extends [... infer R, infer L] ? [L, ...Reverse<R>] : T;
Solution by ricky-fn #31918
type Reverse<
T extends any[],
U extends any[] = []
> = U["length"] extends T["length"] ? U : Reverse<T, [T[U["length"]], ...U]>;
Solution by vipulpathak113 #31785
// 递归
type Reverse<T extends unknown[]> = T extends [infer First, ...infer Rest] ? [...Reverse<Rest>, First] : T
Solution by Yand-hi #30019
Solution:
type Reverse<T extends any[]> = T extends [infer F, ...infer R] ? [...Reverse<R>, F] : T;
Solution by DmitriiBr #29555
type Reverse<T extends any[]> = T extends [infer A, ...infer B] ? [...Reverse<B>, A]: [];
type R = Reverse<[1, 2, 3, 4]>;
Solution by sundial-dreams #29492
type Reverse<T extends any[], Result extends any[] = []> = T extends [...infer A, infer B] ? Reverse<A, [...Result, B]> : Result
Solution by dmytro-shumak #29225
type Reverse<T extends unknown[]> = T extends [infer F, ...infer R] ? [...Reverse<R>, F] : T;
Solution by DoubleWoodLin #28700
// your answers
type Reverse<T extends any[]> = T extends [infer F, ...infer Rest] ? [...Reverse<Rest>, F] : T;
Solution by daiki-skm #28127
type Reverse<T extends any[], Acc extends any[] = []> = T extends [infer A, ...infer Rest] ? Reverse<Rest, [A, ...Acc]> : Acc
Solution by devSoyoung #27725
type Reverse<T extends any[], U extends any[] = []> = T extends [...infer O, infer L] ? Reverse<O, Push<U, L>> : U;
Solution by 8471919 #27696
type Reverse<T extends any[], P extends any[] = []> = T extends [infer L, ...infer R] ? Reverse<R, [L, ...P]>: P
Solution by isntkyu #27687
type Reverse<T extends unknown[]> = T extends [infer First, ...infer Tail] ? [...Reverse<Tail>, First] : []
Solution by jjswifty #27635