TypeScript
-
이펙티브 타입스크립트- 2장 타입시스템 (3)TypeScript 2022. 4. 1. 01:13
아이템 14. 타입 연산과 제너릭 사용으로 반복 줄이기 같은 코드를 반복하지 말라는 DRY(don't repeat yourself) 원칙은 개발자라면 어느 분야든 들어본 말이다. 하지만 타입에 대해서는 쉽게 간과하기 쉽다. 아래 예시를 보자 interface Person { firstName: string; lastName: string; } // X interface PersonWithBirthDate { firstName: string; lastName: string; birth: Date; } // O interface PersonWithBirthDate extends Person { birth: Date; } // O type PersonWithBirthDate = Person & { birth:..
-
이펙티브 타입스크립트- 2장 타입시스템 (2)TypeScript 2022. 3. 29. 00:56
아이템 10. 객체 래퍼 타입 피하기 자바스크립트의 기본형 타입들(string, number, boolean, symbol, bigint)는 해당 타입과 관련한 메서를 간편하게 사용할 수 있게 해주는 Wrapper 객체와 함께 사용되곤 한다. 'primitive'.charAt(3); // 'm' chatAt은 string의 메서드가 아님에도 쓸 수 있다 -> 객체래퍼가 동작하기 때문이다. 그 과정은 문자열 기본형은 String 객체로 wrapping 되고 chatAt 메서드를 호출한 후에 마지막에 wrapping한 객체를 다시 버린다. 하지만 string 기본형과 String 객체 래퍼가 항상 동일하게 동작하지는 않다. String 객체는 오직 자기 자신하고만 동일하다 'hello' === new Str..
-
이펙티브 타입스크립트- 2장 타입 시스템 (1)TypeScript 2022. 3. 28. 21:57
아이템 6. 편집기를 사용하여 타입 시스템 탐색하기 타입스크립트를 설치하면 실행 할 수 있는 두 가지 1. 타입스크립트 컴파일러(tsc) 주된 목적 2. 타입스크립트 서버(tsserver) 언어 서비스(코드 자동완성, 명세검사, 검색, 리팩터링) 제공 주로 편집기를 통해 사용됨 언어 서비스는 라이브러리와 라이브러리 타입 선언을 탐색할 때 도움됨 ex) 코드 내에서 fetch함수가 호출 되고 이 함수를 더 알아보길 원한다면 편집기는 'Go to Definition' 옵션을 제공함 -> 해당 옵션을 선택 시 lib.dom.ts 파일에 정의된 fetch함수의 타입 선언을 볼 수 있다. declare function fetch( input: RequestInfo, init?: RequestInit ): Prom..