아이템 02. 타입스크립트 설정 이해하기

아이템 02. 타입스크립트 설정 이해하기

아이템 2. 타입스크립트 설정 이해하기 #

타입스크립트 컴파일러(타입 체커)는 매우 많은 설정을 가지고 있다.

설정 방법예시
커맨드 라인 (cli)tsc --noImplicitAny program.ts
파일 (file)tsconfig.json

참고 : tsc --init 통해 파일 생성 가능하다.

중요/권장 설정 : noImplicitAny

타입을 미리 정의하여 사용할 것인지 설정하는 것

설명
true타입을 미리 정의해야 한다.

타입스크립트는 타입 정보를 설정/체크할 때 가장 효과적이기 때문에, 되도록 true 설정을 권장한다.
false(기존 자바스크립트와 같이) 타입을 미리 정의하지 않아도 된다.

주의! 이 경우 any 타입으로 추론/간주된다.

자바스크립트에서 타입스크립트로 전환할 때와 같은 상황에서만 설정하는 것을 권장한다.

중요/권장 설정 : strictNullChecks

타입에 null, undefined 가 허용될 수 있도록 할 것인지 설정하는 것

strictNullChecks 설정은 트레이드오프가 있다.

  • 오류 검증 / 확인 : ↑
  • 코드 작성(생산성) : ↓
설명
truenull, undefined 를 허용하지 않는다.

예를 들어, 다음 코드는 오류를 발생시킨다.
const x: number = null; // 오류 : ~ 'null' 형식은 'number' 형식에 할당할 수 없습니다.

null 을 허용하기 위해서는 다음과 같이 명시적으로 작성해야한다.
`const x: number
falsenull, undefined 를 허용한다.

예를 들어, 다음 코드는 오류를 발생시키지 않는다.
const x: number = null; // 정상

흔히 봐왔던 에러 메시지 : “undefined는 객체가 아닙니다”

" strictNullChecksnoImplcitAny 가 먼저 설정되어야 한다. “


중요 설정 : strict (모드)

noImplicitAny, strictNullChecks 등의 엄격한 체크를 설정하고 싶다면 strict 설정한다.

” stirct 설정 시 대부분의 오류를 잡아낼 수 있다. “



내가 생각한 핵심은 다음과 같다.
타입스크립트를 사용하려는 이유, 타입스크립트로 넘어가려는 이유를 생각해보면
위 내용의 ‘엄격한 설정’들을 설정해주는 것이 맞지 않을까?

‘엄격함’ 보단 ‘조금 더 편리한 코드 작성’을 추구한다면 기존의 자바스크립트를 사용해도 괜찮지 않을까?

“이것은 온전히 (개발자의)취향의 차이이다.” (1장 중)