inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

[리뉴얼] 타입스크립트 올인원 : Part1. 기본 문법편

완전 복잡한 타입 분석하기(flat 편)

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

320

김준성

작성한 질문수 1

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. ??

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

flat typescript

답변 1

0

제로초(조현영)

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

데코레이터가 현재도 자주 쓰이는 문법인가요?

0

90

2

유틸리티 타입 실제로 구현은 못해도 하나씩 외우면 실무할 때 지장 없겠죠?

0

79

1

매핑 타입은 type에서밖에 안된다고 하네요?

0

75

2

자바에서의 오버로딩과 같은 개념이라고 생각해도 되나요?

0

79

2

filter 함수 반환 타입 네로잉 질문

0

83

2

map<U>(callbackfn: ....) 할때 U는 왜 여기 있는거에요??

0

58

2

ts 컴파일을 위한 type 라벨링 부분

0

55

1

concat 함수 타입 구현 중 질문 있습니다!

0

110

2

filter 메소드 질문

0

62

1

forEach 제네릭 관련 문의

0

66

1

타입 추론 시 가장 넓은 범위로 추론이 되는 건가요?

0

170

1

enum이 javascript로 트랜스파일링될때 사라진다하셨는데요

0

213

1

함수 파라미터 타입 정의 시 ...args: any[]와 ...args: any 의 차이

0

229

1

Flat type에서 ReadonlyArray 타입을 사용하는 이유?

0

163

1

bind type 질문

1

158

1

Lowercase type 관련 질문

0

154

1

key-value 타입 자동추론 질문드립니다

0

276

1

타입스크립트 교과서, p131

0

273

1

타입스크립트 교과서 p122 forEach 메서드 질문

0

239

1

타입스크립트 교과서 p116 , 코드에러남

1

281

1

타입스크립트 교과서 p112 , 코드가 안읽힙니다..

0

272

1

타입스크립트 교과서 p83

1

189

1

타입스크립트교과서 p39 쪽 코드가 이해가 안되요

1

233

1

class 에서 ts의 private vs js의 private field( # )

0

341

1