@@ -36,7 +36,7 @@ type Stuff =
3636 SomeType extends OtherType ? TrueType : FalseType ;
3737```
3838
39- ` extends ` 를 기준으로 왼쪽에 있는 타입이 오른쪽 타입에 할당할 수 있다면 첫 번째 분기(참값 분기)를, 그렇지 않다면 뒤의 분기(거짓값 분기)를 얻게 됩니다.
39+ ` extends ` 를 기준으로 왼쪽에 있는 타입이 오른쪽 타입에 할당할 수 있다면 첫 번째 분기("참"값 분기)를, 그렇지 않다면 뒤의 분기("거짓"값 분기)를 얻게 됩니다.
4040
4141` Dog extends Animal ` 에 따라 ` number ` 나 ` string ` 인지 알려주는 것 말곤, 위의 예제에서 조건부 타입은 그다지 유용해 보이지 않습니다!
4242하지만 제네릭과 함께 사용될 때 조건부 타입은 강력한 힘을 갖습니다.
@@ -109,7 +109,7 @@ let c = createLabel(Math.random() ? "hello" : 42);
109109### 조건부 타입으로 제한하기
110110
111111종종, 조건부 타입의 검사에서 새로운 정보를 얻을 수 있습니다.
112- 타입 가드가 더 구체적인 타입으로 좁혀주듯이, 조건부 타입의 참값 분기는 대조하는 타입에 따라서 제네릭을 더 제한할 수 있습니다.
112+ 타입 가드가 더 구체적인 타입으로 좁혀주듯이, 조건부 타입의 "참"값 분기는 대조하는 타입에 따라서 제네릭을 더 제한할 수 있습니다.
113113
114114다음 예를 살펴보겠습니다.
115115
@@ -153,7 +153,7 @@ type DogMessageContents = MessageOf<Dog>;
153153// ^?
154154```
155155
156- 참값 분기내에서는 TypeScript는 ` T ` 가 ` message ` 프로퍼티를 가지고 _ 있을 것을_ 알 수 있습니다.
156+ "참"값 분기내에서는 TypeScript는 ` T ` 가 ` message ` 프로퍼티를 가지고 _ 있을 것을_ 알 수 있습니다.
157157
158158또 다른 예제에서 배열 타입이면 배열의 개별 요소 타입으로 평탄화 시키지만, 배열 타입이 아니면 그대로 유지하는 ` Flatten ` 타입을 만들 수 있습니다.
159159
@@ -177,14 +177,14 @@ type Num = Flatten<number>;
177177위에서 제약 조건을 가진 조건부 타입을 이용해서 타입을 추출할 수 있다는 점을 살펴봤습니다.
178178이 부분은 조건부 타입을 더 쉽게 만드는 평범한 작업이 됩니다.
179179
180- 조건부 타입은 ` infer ` 키워드를 사용해서 참값 분기에서 비교하는 타입을 추론할 수 있습니다.
180+ 조건부 타입은 ` infer ` 키워드를 사용해서 "참"값 분기에서 비교하는 타입을 추론할 수 있습니다.
181181예를 들어, ` Flatten ` 에서 인덱싱된 접근 타입으로 "직접" 추출하지 않고 요소 타입을 추론할 수 있습니다.
182182
183183``` ts twoslash
184184type Flatten <Type > = Type extends Array <infer Item > ? Item : Type ;
185185```
186186
187- 여기서 참값 분기에서 ` T ` 의 요소 타입을 어떻게 제시할 필요 없이, ` infer ` 키워드를 새 제네릭 타입 변수 ` Item ` 에 선언적으로 사용했습니다.
187+ 여기 "참"값 분기에서 ` T ` 의 요소 타입을 어떻게 제시할 필요 없이, ` infer ` 키워드를 새 제네릭 타입 변수 ` Item ` 에 선언적으로 사용했습니다.
188188이 방식은 관심 있는 타입의 구조를 깊게 분석하지 않아도 되도록 만들어줍니다.
189189
190190` infer ` 키워드를 사용해서 유용한 헬퍼 타입 별칭을 사용할 수 있습니다.
0 commit comments