TS

👶 TypeScript

탈출구 - Nonnull 어서션

Nonnull 어서션 null이 될 수 있는 특별한 상황(T | null 또는 T | null | undefined 타입)을 대비해 TypeScript는 어떤 값의 타입이 null이나 undefined가 아니라 T임을 단언하는 특수 문법을 제공합니다. 몇 가지 상황에서 이 기능을 활용할 수 있습니다. 예를 들어 웹 앱에서 다이얼로그를 보여주거나 숨기는 프레임워크를 개발했다고 가정합니다. 각 다이얼로그는 고유의 ID를 가지며 이 ID로 다이얼로그의 DOM 노드 참조를 얻을 수 있습니다. DOM 노드에서 다이얼로그가 사라지면 ID를 삭제해서 DOM 안에 다이얼로그가 더 이상 존재하지 않음을 알립니다. type Dialog = { id?: string } function closeDialog(dialog: D..

👶 TypeScript

탈출구 - 타입 어서션

탈출구 상황에 따라서는 타입을 완벽하게 지정하지 않고도 어떤 작업이 안전하다는 사실을 TypeScript가 믿도록 만들고 싶을 때가 있습니다. 예를 들어 사용하고 있는 서드 파티 모듈의 타입 정의가 잘못되었음을 파악한 후, DefinitelyTyped에 수정 사항을 기여하기 앞서 코드에서 먼저 검증해보려 한다거나, 아폴로(Apollo)로 타입 선언을 다시 만들지 않은 채 API가 반환한 데이터를 사용해야 하는 상황일 수도 있습니다. 다행히 TypeScript는 안전한 작업임을 증명할 시간이 없을 때 활용할 수 있는 탈출구를 제공합니다. 명확하지 않다면, 다음에 나열하는 TypeScript 기능들은 되도록 적게 사용하는 게 좋습니다. 이 기능들에 너무 의존하는 상황이라면 무언가 잘못된 것일 수 있습니다. ..

👶 TypeScript

조건부 타입 - 내장 조건부 타입들

내장 조건부 타입들 조건부 타입을 이용하면 정말 강력한 연산자 몇 가지를 타입 수준에서 표현할 수 있습니다. TypeScript가 전역에서 바로 사용할 수 있는 여러 조건부 타입을 제공하는 이유도 바로 이 때문입니다. Exclude Without 타입처럼 T에 속하지만 U에는 없는 타입을 구합니다. type A = number | string type B = string type C = Exclude // type C = number Extract T의 타입 중 U에 할당할 수 있는 타입을 구합니다. type A = number | string type B = string type C = Extract // type C = string NonNullable T에서 null과 undefined를 제외한 버..

👶 TypeScript

조건부 타입 - infer 키워드

infer 키워드 조건부 타입의 마지막 특성으로 조건의 일부를 제네릭 타입으로 선언할 수 있는 기능을 꼽을 수 있습니다. 참고로 지금까진 제네릭 타입 매개변수를 선언하는 방법으로 꺾쇠괄호()를 이용하는 방법 한 가지만 배웠습니다. 조건부 타입에선 제네릭 타입을 인라인으로 선언하는 전용 문법을 제공합니다. 바로 infer 키워드입니다. 배열의 요소 타입을 얻는 ElementType이라는 조건부 타입을 정의해 봅시다. type ElementType = T extends unknown[] ? T[number] : T type A = ElementType // type A = number infer를 이용하면 이 코드를 다음처럼 다시 구현할 수 있습니다. type ElementType2 = T extends (..

개발자 린다씨
'TS' 태그의 글 목록 (6 Page)