1-1. 타입스크립트는 자바스크립트의 상위집합이다
1-2. 타입 시스템은 JS
의 런타임 동작을 모델링한다
런타임으로 가기전에 타입검사
번외. 컴파일타임, 빌드타임, 런타임
2-1. tsconfig.json
파일
생성 명령어
tsc --init
2-2. 컴파일러 설정
명령어 | 설명 |
---|---|
noImplicitAny |
• 타입을 지정하지 않았을 때 any 타입으로 간주되는 것 → 암시적 any |
• 모든 변수에 타입을 지정하도록 함 | |
strictNullChecks |
• null 과 undefined 가 모든 타입에서 허용되는지 확인 |
noEmitOnError |
• 타입체크에 오류가 있을 때 컴파일하지 않음 |
strict |
• true 설정 시 모든 설정을 true |
3-1. 타입스크립트 컴파일러의 역할
TS
/ JS
를 브라우저에서 동작할 수 있도록 구버전 JS
로 트랜스파일→ 두 역할은 독립적이다 !!!!
3-2. 타입 오류가 있는 코드도 컴파일이 가능하다
3-3. 런타임에는 타입 체크가 불가능하다
TS
→ JS
컴파일 과정에서 인터페이스 / 타입 / 타입 구문 다 제거됨3-4. 타입 연산은 런타임에 영향을 주지 않는다
3-5. 런타임 타입은 선언된 타입과 다를 수 있다
async/await
를 활용한 API 통신 상황3-6. 타입스크립트 타입으로는 함수를 오버로드 할 수 없다
3-7. 타입스크립트 타입은 런타임 성능에 영향을 주지 않는다
4-1. 자바스크립트는 덕타이핑
기반이다
4-2. 타입스크립트는 이를 모델링 하기 위해 구조적 타이핑
을 사용한다
4-3. 유닛테스트 작성에 유리한 구조적 타이핑
5-1. 타입 안전성이 없다
5-2. 함수 시그니처를 무시해 버린다
5-3. 언어 서비스가 적용되지 않는다
5-4. 리팩터링 때 버그를 감춘다
5-5. 타입 설계를 감춘다
5-6. 타입시스템의 신뢰도를 떨어뜨린다