강의

멘토링

로드맵

Inflearn Community Q&A

junseongdev1684's profile image
junseongdev1684

asked

[Renewal] TypeScript All-in-One: Part 1. Basic Grammar

Analyzing fully complex types (flat version)

Flat 분석에서 Depth 타입을 위한 배열은 왜 하드코딩일까요?

Written on

·

310

0

type FlatArray<Arr, Depth extends number> = {
  "done": Arr,
  "recur": Arr extends ReadonlyArray<infer InnerArr>
    ? FlatArray<InnerArr, [-1,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20][Depth]>
    : Arr
}[Depth extends 01 ? "done" : "recur"];


위의 코드에서 typescript가 [-1,0,1,...,20]로 배열을 하드 코딩한 이유는
1. 코드를 직관적으로 이해하기 쉽도록 하기 위함
2. 메서드로 배열 생성했을 때, 해당 배열 생성을 위한 Array의 다른 메서드 의존을 없애기 위함
+다른 배열 생성 방법 예시 중 하나) new Array(21).fill(0).map((_,i)=>i-1)
3. 다시 쓰지도 않을거고, 이정도 사이즈의 배열은 그냥 써도 된다.
4. ??

어떤 이유일까요?
제로초님의 생각은 어떠신지 궁금합니다.

flattypescript

Answer 1

0

zerocho님의 프로필 이미지
zerocho
Instructor

저 방법밖에 없어서 그런겁니다. 타입스크립트에서 Array.fill같은 게 안 됩니다.

junseongdev1684's profile image
junseongdev1684

asked

Ask a question