👶 TypeScript

👶 TypeScript

조건부 타입 - 분배적 조건부

분배적 조건부 TypeScript에선 지금까지 살펴본 예에서처럼 간단한 조건을 다양한 방식으로 표현할 수 있습니다. 이는 분배 법칙(distributive law)을 따르기 때문입니다. 즉 왼쪽의 표현식은 오른쪽의 표현식과 동일합니다. 아래의 표현식은 다음과 같습니다. string extends T ? A : B string extends T ? A : B (string | number) extends T ? A : B (string extends T ? A : B) | (number extends T ? A : B) (string | number | boolean) extends T ? A : B (string extends T ? A : B) | (number extends T ? A : B) | (..

👶 TypeScript

조건부 타입

조건부 타입 조건부 타입은 TypeScript가 제공하는 기능 중에서도 가장 독특하다고 할 수 있습니다. 조건부 타입의 의미를 말로 풀어보자면 "U와 V 타입에 의존하는 T 타입을 선언하라. U

👶 TypeScript

고급 함수 타입들 - 사용자 정의 타입 안전 장치

사용자 정의 타입 안전장치(user-defined type guard) 불(boolean)을 반환하는 함수 중 단순히 "이 함수는 boolean을 반환한다"라고 하고 끝내기엔 아쉬운 게 있을 수 있습니다. 예를 들어 전달한 인수가 string인지 아닌지를 판단하는 함수를 구현한다고 가정하겠습니다. function isString(a: unknown): boolean { return typeof a === "string"; } isString("a"); // true isString([4]); // false 지금까진 아무런 문제가 없습니다. 하지만 isString 실제로 호출하면 어떤 일이 일어날까요? function isString(a: unknown): boolean { return typeof a ..

👶 TypeScript

고급 함수 타입들 - 튜플의 타입 추론 개선

튜플의 타입 추론 개선 TypeScript는 튜플을 선언할 때 튜플의 타입에 관대한 편입니다. 튜플의 길이, 그리고 어떤 위치에 어떤 타입이 들어있는지는 무시하고 주어진 상황에서 제공할 수 있는 가장 일반적인 타입으로 튜플의 타입을 추론합니다. let a = [4, false] // let a: (number | boolean)[] 하지만 때로는 조금 더 엄격한 추론이 필요한데, 예를 들어 앞 예에서 a를 배열이 아니라 고정된 길이의 튜플로 취급하고 싶을 수 있습니다. 물론 타입 어서션을 이용해 튜플을 튜플 타입으로 형변환할 수 있습니다. 또는 as const 어서션을 이용해 튜플의 타입을 가능한 한 좁게 추론하는 동시에 읽기 전용으로 만들 수 있습니다. 타입 어서션을 사용하지 않고 추론 범위도 좁히지도..

개발자 린다씨
'👶 TypeScript' 카테고리의 글 목록 (7 Page)