kakasoo

Flatten 본문

프로그래밍/TypeScript

Flatten

카카수(kakasoo) 2023. 3. 19. 22:54
반응형
type Flatten<T extends any[]> = T extends [infer R, ...infer Rest] ? R extends any[] ? [...Flatten<R>, ...Flatten<Rest>] : [R, ...Flatten<Rest>] : [];

배열인지 아닌지에 따라 재귀적으로 풀 것인지 결정하면 된다.

만약 T가 infer R과 infer Rest로 구성된 배열일 때, R이 배열인지 아닌지에 따라 재귀적으로 접근하면 된다.

Rest는 나머지 요소들이기 때문에 무조건 배열이며 따라서 재귀적으로 접근하면 된다.

만약 T가 이러한 배열이 아닐 경우에는 빈 배열이 된다.

반응형

'프로그래밍 > TypeScript' 카테고리의 다른 글

TrimRight  (0) 2023.03.21
TrimLeft  (0) 2023.03.20
DeepReadonly  (0) 2023.03.19
TypeScript 코드는 어떻게 변환되는가?  (0) 2023.03.19
함수의 리턴 타입 알아내기  (0) 2023.03.06