타입스크립트 프로젝트에서 타입 체커에 대한 설정을 할 수 있다. tsc --init 명령어를 통해 tsconfig.json 파일을 만들 수 있다. 이 파일에서 타입스크립트 설정을 변경할 수 있다.

타입스크립트를 제대로 사용하기 위하여 세팅해야 하는 두 가지 설정을 알아보자.

noImplicitAny

변수들이 미리 명시적으로 지정된 타입을 가져야 하는지에 대한 설정이다. 만약 명시적으로 타입을 지정하지 않는다면 타입스크립트는 해당 변수나 함수의 타입을 any로 추론한다. 타입스크립트에서는 타입 정보를 늘 가질 때 효과적이므로, 늘 타입스크립트 프로젝트를 시작할 때 해당 설정을 허용한 상태에서 진행하는 것이 좋다.

function add(a, b) {
  return a + b
}

// Parameter 'a' implicitly has an 'any' type.
// Parameter 'b' implicitly has an 'any' type.

위 예시에서는 any를 코드에 넣지 않았음에도 any 타입으로 간주된다(암시적 any). 위의 코드는 타입스크립트의 noImplicitAny 설정이 해제되어 있을 때는 유효하나, 설정되어 있을 시에는 유효하지 않다. 기존 자바스크립트 코드를 타입스크립트로 전환하는 상황이 아니라면 가급적 이 설정을 켜두도록 하자.

strictNullCheck

null과 undefined가 모든 타입에서 허용되는지에 대한 설정이다.

const x: number = null

위의 코드는 strictNullCheck 설정이 해제되었을 때 유효하다. 만약 해당 설정을 세팅한다면 에러가 발생한다.

const x: number = null
// Type 'null' is not assignable to type 'number'.

위의 설정 이외에도 엄격한 타입 체크를 가능하게 하는 설정들이 있다. 이들을 모두 활성화시키기 위해서는 strict 설정을 고려해보자.