TS

👶 TypeScript

객체 타입의 타입 연산자 - 키인 연산자

객체 타입의 타입 연산자 TypeScript는 유니온(|)과 인터섹션(&) 두 연산자 이외에 다른 타입 연산자도 제공합니다. 형태 관련 연산을 수행하는 데 도움을 주는 다양한 연산자를 알아보겠습니다. 키인 연산자 선택한 소셜 미디어 API에서 받은 GraphQL API 응답을 모델링하는 복잡한 중첩 타입이 있다고 가정해 보겠습니다. type APIResponse = { user: { userId: string friendList: { count: number friends: { firstName: string lastName: string } } } } 이 API에서 응답을 받아와 보여줘야 합니다. type APIResponse = { user: { userId: string friendList: { c..

👶 TypeScript

철저 검사(Exhaustiveness Checking)라 불리는 종합성(Totality)

종합성(Totality) 철저 검사라고도 불리는 종합성은 필요한 모든 상황을 제대로 처리했는지 타입 검사기가 검사하는 기능입니다. 종합성은 하스켈, 오캐멀 등 패턴 매칭을 사용하는 언어에서 차용한 기능입니다. TypeScript는 다양한 상황의 모든 가능성을 확인하며, 빠진 상황이 있다면 이를 경고합니다. 실제로 일어날 버그를 방지하는 데 아주 도움 되는 기능입니다. 아래 예를 살펴보겠습니다. type DayOfTheWeek = 'Mon' | 'Tue' | 'Wed' | 'Thu' | 'Fri' type Day = DayOfTheWeek | 'Sat' | 'Sun' function getNextDay(d: DayOfTheWeek): Day { // 함수에 끝 return 문이 없으며 반환 형식에 'und..

👶 TypeScript

정제 - 차별된 유니온 타입

차별된 유니온 타입 TypeScript는 JavaScript가 어떻게 동작하는지 잘 이해하며, 마치 프로그래머가 머리로 프로그램을 추적하듯이 코드로부터 타입을 정제해 낼 수 있습니다. 예를 들어 응용 프로그램의 커스텀 이벤트 시스템을 만든다고 가정합니다. 먼저 몇 가지 이벤트 타입과 이벤트들을 처리할 함수를 정의합니다. KeyBoardEvent는 키보드 이벤트를, MouseControlEvent는 마우스 이벤트를 가리킵니다. type KeyBoardEvent = {value: string} type MouseControlEvent = {value: [number, number]} type FirstEvent = KeyBoardEvent | MouseControlEvent function handle(ev..

👶 TypeScript

정제

정제 TypeScript는 심벌 수행(symbolic execution)의 일종인 흐름 기반 타입 추론을 수행합니다. 즉, 타입 검사기는 typeof, instanceof, in 등의 타입 질의뿐 아니라, 마치 프로그래머가 코드를 읽듯 if, ?, ||, switch 같은 제어 흐름 문장까지 고려하여 타입을 정제(refinement)합니다. 이는 타입 검사기에 제공되는 아주 유용한 기능으로 오직 일부의 언어에서만 지원합니다. 예를 살펴보겠습니다. TypeScript에 CSS 규칙을 정의하는 내장 API가 있고 동료 개발자가 HTML 요소의 너비(width)를 설정하려 한다고 가정해 봅시다. 너비를 전달하면 이를 파싱하고 검증할 것입니다. 먼저 CSS 문자열을 값(value)과 단위(unit)로 파싱 하는..

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