반응형

심화 타입스크립트 23

[이펙티브 타입스크립트+13] 타입과 인터페이스의 차이점 알기

2장 타입스크립트의 타입 시스템 아이템 13 | 타입과 인터페이스의 차이점 알기 3줄 요약 1. 대부분의 경우에는 타입과 인터페이스는 차이점이 없다. 2. 복잡한 타입을 다룰 때는 type을 사용하는 것이 좋다. 3. 인터페이스의 선언 병합을 통해 속성을 확장시킬 수 있다. 참고) 이펙티브 타입스크립트는 타입스크립트의 기본 그 이상을 다룹니다. 타입스크립트에서 타입을 정의하는 방법은 두 가지가 있습니다. 첫 번째는 type을 이용하는 것이고, 두 번째는 interface를 이용하는 것입니다. 타입스크립트를 처음 공부해서 사용할 때 언제 타입을 사용해야 하는지 언제 인터페이스를 써야 하는지 몰라서 고민에 빠질 때가 있습니다. 대다수의 경우에는 타입을 사용해도 되고, 인터페이스를 사용해도 됩니다. 이번 아이..

[이펙티브 타입스크립트+12] 함수 표현식에 타입 적용하기

2장 타입스크립트의 타입 시스템 아이템 12 | 함수 표현식에 타입 적용하기 3줄 요약 1. 타입스크립트에서는 타입 재활용이라는 관점에서 함수 선언문보다 함수 표현식이 장점을 가진다. 2. 함수 선언문과 함수 표현식의 차이점을 이해하라. (함수 호이스팅 등) 3. ... 참고) 이펙티브 타입스크립트는 타입스크립트의 기본 그 이상을 다룹니다. 자바스크립트에서 함수를 만들 때에는 크게 두 가지 방식이 있습니다. 함수 선언문과 함수 표현식입니다. 타입스크립트에서는 함수 표현식을 사용하는 것을 권장합니다. 함수 표현식을 사용하면 함수의 매개변수와 반환값를 한번에 함수 타입으로 선언할 수 있기 때문입니다. 반면에, 함수 선언문을 사용하면 함수의 매개변수와 반환값의 타입을 따로 선언해야합니다. 반면에 함수 표현식을..

[이펙티브 타입스크립트+11] 잉여 속성 체크의 한계 인지하기

2장 타입스크립트의 타입 시스템 아이템 11 | 잉여 속성 체크의 한계 인지하기 3줄 요약 1. 잉여 속성 체크는 타입에 선언된 속성 외에 속성이 있는지 체크한다. 2. 객체 리터럴에서만 잉여 속성 체크가 동작한다. 그래서 엄격한 객체 리터럴 체크라고도 불린다. 3. 일반적인 구조적 할당 가능성 체크와는 역할이 다르다. 참고) 이펙티브 타입스크립트는 타입스크립트의 기본 그 이상을 다룹니다. 잉여 속성 체크는 아래와 같습니다. 변수에 타입을 선언함과 동시에 오브젝트 리터럴로 만들게 되면 잉여 속성이 체크됩니다. 반면 아래와 같은 경우에는 잉여 속성이 체크되지 않습니다. 정상적으로 hoon 변수에 hyun 변수가 할당되었고, 이 과정에서 잉여 속성 체크는 진행되지 않았습니다. 구조적 타이핑이라는 관점에서 봤..

[이펙티브 타입스크립트+10] 객체 래퍼 타입 피하기

2장 타입스크립트의 타입 시스템 아이템 10 | 객체 래퍼 타입 피하기 3줄 요약 1. 타입스크립트에서는 변수를 선언할 때, 객체 래퍼 타입으로 선언하지 마라. 2. 타입스크립트에서는 자바스크립트의 동작을 모델링한다. 3. 객체 래퍼 타입으로 선언하면 자바스크립트의 변수와 동작이 맞지 않을 수 있다. 참고) 이펙티브 타입스크립트는 타입스크립트의 기본 그 이상을 다룹니다. 객체 래퍼 타입이란 Number, String, Boolean 등과 같은 타입입니다. 대문자로 시작합니다. 반면에, 원시 타입이란 number, string, boolean 등과 같은 타입입니다. 대문자로 시작하지 않고 소문자로 시작합니다. 자바스크립트에는 6가지 원시 데이터 타입이 있습니다. undefined, null, number,..

[이펙티브 타입스크립트+9] 타입 단언보다는 타입 선언을 사용

2장 타입스크립트의 타입 시스템 아이템 9 | 타입 단언보다는 타입 선언을 사용하기 3줄 요약 1. 타입 단언보다는 타입 선언을 사용하자. 2. 컴파일러보다 더 타입을 확신할 수 있을 때는 타입 단언을 사용해도 된다. 3. 함수 시그니처를 잘 살펴보고 제너릭을 통해 리턴 타입을 정할 수 있다면 타입 단언보다 해당 방법을 더 우선으로 고려하자. 참고) 이펙티브 타입스크립트는 타입스크립트의 기본 그 이상을 다룹니다. 타입 선언과 타입 단언의 차이는 아래와 같습니다. 변수 kim과 변수 lee는 모두 Person 타입입니다. 그러나 타입을 부여하는 방식이 서로 다릅니다. 변수 kim에서는 타입 선언 방식이 사용되었고, 변수 lee에서는 타입 단언이 사용되었습니다. 이번 아이템에서 이야기하는 것은 타입 단언 방..

[이펙티브 타입스크립트+8] 타입 공간과 값 공간의 심벌 구분

2장 타입스크립트의 타입 시스템 아이템 8 | 타입 공간과 값 공간의 심벌 구분하기 3줄 요약 1. 타입스크립트에서는 타입의 공간과 값의 공간이 분리되어있다. 2. 타입스크립트 코드를 읽을 때 타입인지 값인지 구분하는 방법을 터득해야 한다. 3. 클래스(생성자 함수)의 타입은 typeof 클래스이고, 인스턴스의 타입은 클래스이다. 참고) 이펙티브 타입스크립트는 타입스크립트의 기본 그 이상을 다룹니다. 타입스크립트에서는 값의 공간(context)와 타입의 공간(context)가 다릅니다. 따라서, 똑같은 이름의 식별자(책에서는 심볼)가 각각의 공간에서 각자 존재할 수 있습니다. (그렇다고 해서 이렇게 똑같은 이름으로 쓰는 것은 권장하지 않습니다. 본인뿐만 아니라 같이 개발하는 동료까지 헷갈리게 할 수 있습..

[이펙티브 타입스크립트+7] 타입이 값들의 집합이라고 생각

2장 타입스크립트의 타입 시스템 아이템 7 | 타입이 값들의 집합이라고 생각하기 3줄 요약 1. 값들의 집합을 타입이라고 한다. 2. unknown과 any는 본질적으로 다른 타입이다. 3. 부분 집합이다 / 할당 가능하다 / 상속받았다는 동일한 의미를 가지고 있다. 참고) 이펙티브 타입스크립트는 타입스크립트의 기본 그 이상을 다룹니다. 자바스크립트(ES6)에서 타입이란 데이터 타입을 이야기하며 총 7개입니다. 원시 타입인 number, string, boolean, undefiend, null, symbol와 객체 타입으로 구성되어 있습니다. 타입스크립트에서는 타입을 값들의 집합이라고 생각해야 합니다. 그리고 그 타입은 프로그래머가 정의할 수 있으며 그 수는 무한히 많습니다. 그리고 이 타입은 타입 공..

[이펙티브 타입스크립트+6] 편집기를 사용하여 타입 시스템 탐색

2장 타입스크립트의 타입 시스템 아이템 6 | 편집기를 사용하여 타입 시스템 탐색하기 3줄 요약 1. 타입스크립트 서버를 통해서 타입스크립트의 언어 서비스를 제공받을 수 있다. 2. 언어 서비스를 에디터로부터 확인할 수 있다. 3. 타입스크립트와 비주얼 코드는 마이크로소프트 사의 제품이다. 궁합이 좋다. 참고) 이펙티브 타입스크립트는 타입스크립트의 기본 그 이상을 다룹니다. 타입스크립트를 설치하면 두 가지를 실행할 수 있습니다. 1. 타입스크립트 컴파일러(tsc) 2. 타입스크립트 서버(tsserver) 이 중 타입스크립트 컴파일러는 한 번쯤은 사용해보셨을 겁니다. 타입스크립트 파일을 자바스크립트 파일로 트랜스파일할 때 쓰는 명령어이니깐요. 타입스크립트 서버는 조금 생소하게 느껴지실 수도 있습니다. 그러..

[이펙티브 타입스크립트+5] any 타입 지양하기

1장 타입스크립트 알아보기 아이템 5 | any 타입 지양하기 3줄 요약 1. any 타입 지양하기 2. any 타입 지양하기 3. any 타입 지양하기 참고) 이펙티브 타입스크립트는 타입스크립트의 기본 그 이상을 다룹니다. 타입스크립트를 사용하면서 any 타입을 사용하지 말라는 말을 여럿 듣습니다. 이제는 상식이 되어버린 any 타입 지양하기입니다. 그러면 any 타입이 어떤 문제가 있기 때문에 사용을 지양해야 할까요? 먼저 그전에 언제 any를 사용해야 할까요? 바로 자바스크립트 프로젝트에서 타입스크립트로 마이그레이션할 때 사용하면 됩니다. 타입스크립트 타입 시스템은 점진적이고 선택적이라고 합니다. 따라서, 조금씩 자바스크립트 프로젝트에서 타입을 점진적으로 추가할 때 이 any 타입이 큰 도움이 될 ..

[이펙티브 타입스크립트+4] 타입스크립트 구조적 타이핑 (structure typing / duck typing)

1장 타입스크립트 알아보기 아이템 4 | 구조적 타이핑에 익숙해지기 3줄 요약 1. 자바스크립트는 본질적으로 덕 타이핑 기반이다. 2. 자바스크립트의 런타임 동작 모델링한 타입스크립트 또한 덕 타이핑을 기반으로 한다. 3. 덕 타이핑에 제대로 이해해서 활용하자. 참고) 이펙티브 타입스크립트는 타입스크립트의 기본 그 이상을 다룹니다. 덕 타이핑은 아래와 같은 문구로 유명합니다. 만약 어떤 새가 오리처럼 걷고, 헤엄치고, 꽥꽥거리는 소리를 낸다면 나는 그 새를 오리라고 부를 것이다. - 위키피디아 검색 어떤 새가 본래 오리로 태어났는가는 중요하지 않습니다. 오리처럼 행동하면 그것은 오리라고 말할 수 있습니다. 이것이 우리가 익히 알고있는 덕 타이핑을 나타내는 표현입니다. 타입스크립트에서 타입을 체크하는 방식..

반응형