https://slides.com/woongjae/woowahan-ts
strictNullChecks: true;
null과 undefined를 제거
- 명시적으로 리턴타입을 지정하는 것이 좋다.
nolmplicitAny: true;
타입스크립트가 타입을 any라고 판단하게 될 시 컴파일 에러를 발생시킨다.
nolmplicitReturns: true;
함수 내에서 모든 코드가 값을 리턴하지 않으면 컴파일 에러 발생시킨다.
strictFunctionTypes: true;
함수의 매개변수 타입만 같거나 슈퍼타입인 경우가 아닐때 에러
서브타입&수퍼타입은 포함관계를 나타낸다고 이해하면 될 것 같다.
예를 들어
let sub1: string = '';
let sup1: string | number = sub1;
이렇게 sup1에 sub1을 할당하는것이 가능하다.
왜냐면 sub1은 sup1에 포함되기 때문.