Description 53. 타입스크립트 기능보다는 ECMAScript 기능을 사용하기
타입스크립트 초기 버전에는 독립적으로 개발한 기능을 포함시켰으나 시간이 흐르며 자바스크립트에 추가된 내장 기능과 호환성 문제가 발생함
타입스크립트는 대부분 자바스크립트 신규 기능을 채택하고 타입스크립트 초기 버전과 호환성을 포기하는 전략을 선택
enum
상수 열거형은 런타임에 완전히 제거되므로 기대하지 않은 결과를 낳음
문자열 열거형은 런타임의 타입 안전성과 투명성을 제공하지만 명목적 타이핑(nominally typing)을 사용
타입이 특정 enum이면 값이 같더라도 반드시 enum을 통해서 넣어야 함
enum 대신 리터럴 타입의 유니온을 사용하면 됨 type Flavor = 'vanilla' | 'chocolate' | 'strawberry'
매개변수 속성
코드가 늘어나는 문법, 매개변수 속성은 런타임에 실제 사용되나 타입스크립트 관점에서는 사용되지 않는 것처럼 보임
클래스에 매개변수 속성만 있다면 클래스 대신 인터페이스로 만들고 객체 리터럴을 사용하는 것이 좋다
호불호가 갈리기는 하지만 쨌든, 매개변수 속성과 일반 속성을 같이 사용하는 건 지양하는 게 좋다
namespace, triple slash import
triple slash import와 module 키워드는 호환성을 위해 남아있을 뿐, ECMAScript 2015 스타일의 import, export를 사용해라
데코레이터
표준이 되기 전까진 타입스크립트에서 사용하지 않는 게 좋다
54. 객체를 순회하는 노하우
가장 일반적인 방법은 Object.entries
키가 어떤 타입인지 정확히 알 때만 keyof T for-in을 사용
55. DOM 계층 구조 이해하기
DOM에는 타입 계층 구조가 있으며 브라우저 프로젝트에서 유용하게 사용됨
충분히 구체적인 타입 정보를 사용해야 한다
56. 정보를 감추는 목적으로 private 사용하지 않기
public protected private 접근 제어자는 컴파일 후에 제거되므로 런타임에 효력이 없다. 따라서 정보를 감추기 위해 private을 사용하면 안 된다. 이에 가장 효과적인 방법은 클로저를 사용하는 것이다.
또 다른 방법으로 표준화가 진행중인 비공개 필드 기능을 사용할 수 있다. 접두사 #를 붙여 타입체크, 런타임 모두 비공개로 만든다.
57. 소스맵을 사용하여 타입스크립트 디버깅하기
소스맵을 사용해서 런타임에 타입스크립트 코드를 디버깅한다.
소스맵에 원본 코드가 공개되지 않도록 설정을 확인해야 한다.
Reactions are currently unavailable
You can’t perform that action at this time.
53. 타입스크립트 기능보다는 ECMAScript 기능을 사용하기
enum
type Flavor = 'vanilla' | 'chocolate' | 'strawberry'매개변수 속성
namespace, triple slash import
데코레이터
54. 객체를 순회하는 노하우
keyof Tfor-in을 사용55. DOM 계층 구조 이해하기
56. 정보를 감추는 목적으로 private 사용하지 않기
publicprotectedprivate접근 제어자는 컴파일 후에 제거되므로 런타임에 효력이 없다. 따라서 정보를 감추기 위해 private을 사용하면 안 된다. 이에 가장 효과적인 방법은 클로저를 사용하는 것이다.57. 소스맵을 사용하여 타입스크립트 디버깅하기