[typescript] config

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

links

social