Docs
상황별 추천 설정
타입스크립트 프로젝트로 전환 시 - 완료 후에 변경 권장
- noImplicitAny: false
- strictNullChecks: false
noImplicitAny
Recommended: true Default: true if strict
- true: 타입을 추론할 수 없을 때 타입을 any로 간주
- false: 타입을 지정하지 않으면 error 발생
function fn(s) { // Parameter 's' implicitly has an 'any' type.
console.log(s.subtr(3));
}
fn(42);
strictNullChecks
Recommended: true Default: true if strict
- true: null, undefined를 분명한(distinct) 타입으로 인식.
- false: null, undefined가 effectively ignored by the language
// Type 'null' is not assignable to type 'number'.
const num: number = null;
또한 변수의 경우 null 또는 undefined일 가능성을 고려한다.
declare const loggedInUsername: string;
const users = [
{ name: "Oby", age: 12 },
{ name: "Heera", age: 32 },
];
const loggedInUser = users.find((u) => u.name === loggedInUsername);
console.log(loggedInUser.age);
// 'loggedInUser' is possibly 'undefined'.
false로 개발한다면 undefined is not an object
에러에 주의
noEmitOnError
Recommended: false Default: false
Do not emit compiler output files like JavaScript source code, source-maps or declarations if any errors were reported.
- true: 에러 발생 시 컴파일 결과 파일을 생성(emit)하지 않는다.
- false: 컴파일 결과 파일을 생성한다.
에러가 발생하는 코드
// main.ts
const num: number = 'Not number';
아래 명령어로 컴파일 시 컴파일된 자바스크립트 파일이 생성되지 않음
tsc --p ./tsconfig.json
or
tsc --noEmitOnError main.ts