-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Labels
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 Tfor-in을 사용
55. DOM 계층 구조 이해하기
- DOM에는 타입 계층 구조가 있으며 브라우저 프로젝트에서 유용하게 사용됨
- 충분히 구체적인 타입 정보를 사용해야 한다
56. 정보를 감추는 목적으로 private 사용하지 않기
publicprotectedprivate접근 제어자는 컴파일 후에 제거되므로 런타임에 효력이 없다. 따라서 정보를 감추기 위해 private을 사용하면 안 된다. 이에 가장 효과적인 방법은 클로저를 사용하는 것이다.- 또 다른 방법으로 표준화가 진행중인 비공개 필드 기능을 사용할 수 있다. 접두사 #를 붙여 타입체크, 런타임 모두 비공개로 만든다.
57. 소스맵을 사용하여 타입스크립트 디버깅하기
- 소스맵을 사용해서 런타임에 타입스크립트 코드를 디버깅한다.
- 소스맵에 원본 코드가 공개되지 않도록 설정을 확인해야 한다.
Choozii