noImplicitAny
function add(a, b) {
return a + b
}
noImplicitAny가 해제돼있다면, 해당 코드의 타입은 다음과 같습니다.
function add(a: any, b: any): any {}
any타입을 매개변수에 사용하면 타입 체커는 유명무실해짐
따라서 noImplicitAny = true로해야함
그러면 위 코드는 다음과 같은 에러를 반환
// ‘a’ 매개변수에는 암시적으로 any 형식이 포함됩니다.
- 암시적으로 any로 설정됨
- 이는 해당 환경에서 오류로 간주
에러를 해결하려면 다음과 같이 하면됨
function add(a: number, b: number) {
return a + b
}
// 혹은function add(a: any, b: any) {
return a + b
}
새 프로젝트를 시작한다면 처음부터 noImplicitAny = true로 작업해야함
strictNullChecks
strictNullChecks는 null과 undefined가 모든 타입에서 허용되는지 확인하는 설정
strictNullChecks가 해제됐을 때는 해당코드는 유효한 코드입니다.
const x: number = null
strictNullChecks가 true일 때는 오류입니다.
// ‘null’ 형식은 ‘number’ 타입에 할당할 수 없습니다.
null을 허용하려면 다음과 같이해야합니다
const x: number | null = null;
이 속성을 true로 안할 경우, 다음과 같은 에러를 자주 마주칠 수 있습니다.
// undefined는 객체가 아닙니다