더북(TheBook)

R2의 경우에는 Depth2입니다. 이때는 다음과 같은 표가 만들어집니다.

▼ 표 3-2 R2의 경우 Depth별 결괏값 정리

Depth

Arr

Depth extends -1

InnerArr 또는 Arr

2

(number | (number | number[])[])[]

false

InnerArr = number | (number | number[])[]

1

(number | number[])[])

false

InnerArr = number | number[]

0

number | number[]

false

InnerArr = number

-1

number

true

Arr = number

R2의 타입은 number[]입니다. flat 메서드는 FlatArray<A, D>[]이므로 마지막에 []를 붙여야 합니다.

flat 같은 타입을 스스로 만드는 것은 매우 어렵습니다. 특히 Depth1 낮추기 위해 인덱스 접근 타입을 사용하는 것은 쉽게 상상하기 힘듭니다. 하지만 직접 타입을 만들지는 못하더라도 만들어진 타입을 보고 왜 이런 결과물이 나오는지 분석할 수는 있어야 합니다. 한 번에 이해하기 힘들겠지만 차근차근 한 단계씩 밟아나가며 분석해보세요. 인덱스 접근 타입이나 분배법칙 같은 개념이 아직 생소하다면 2장으로 돌아가서 복습하는 것이 좋습니다.

flat 메서드에 대한 분석이 완벽하게 이해되었을 때 다음 절로 이동하세요.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.