타입스크립트 컴파일러는 설정에 따라 코드의 에러를 확인할 수 있는 설정을 많이 갖고있습니다.
되도록 설정 파일을 이용한 설정을 해주는 것이 좋다. 동료 개발자들이나 다른 도구들이 타입스크립트의 사용 의도를 파악할 수 있다.
타입스크립트의 설정들은 어디서 소스 파일을 찾을지, 어떤 종류의 출력을 생성할지 제어하는 내용이 대부분이다. 하지만, 언어 자체의 핵심 요소들을 제어하는 설정하는 고수준 설계의 설정이 있다.
설정을 제대로 사용하려면 noImplicitAny와 strictNullChecks를 이해해야 한다.
noImplicitAny
타입 스크립트에서 "암시적 any의 사용"을 방지해주며 값의 타입을 더 분명하게 사용할 수 있게 해주는 설정이다.
암시적 any는 값에 아무런 타입을 선언하지 않은 경우 타입스크립트에 의해 any로 타입이 정의되는 것이다.
// 에러없이 타입 체커를 통과한다.
function add(a: number, b: number) {
return a + b;
}
noImplicitAny의 사용을 통해 타입스크립트 코드의 문제를 쉽게 발견할 수 있으며, 코드의 가독성이 좋아지고, 개발자의 생산성이 향상된다.
strictNullChecks
strictNullChecks는 null과 undefined가 모든 타입에서 허용되는지 확인하는 설정이다.
const x: number = null;
// null 형식은 number 형식에 할당할 수 없다.
만약 null을 허용하려고 한다면, 명시적으로 타입을 지정하며 오류를 고칠 수 있다.
const x: number | null = null;
정리
strictNullChecks를 설정하려면 noImplicitAny를 먼저 설정해야 한다.
strictNullChecks 설정 없이 개발하기로 한다면, "undefined는 객체가 아닙니다." 라는 런타임 오류를 주의해야 하며, 이 에러 때문에 엄격한 체크를 설정할 수 밖에 없을 것이다.
그러므로 가능한 초반에 설정하는 것이 좋다....
요약
타입스크립트 컴파일러는 언어의 핵심 요소에 영향을 미치는 몇 가지 설정을 포함한다.
타입스크립트 설정은 tsconfig.json을 사용하는 것이 좋다.
JS 프로젝트를 TS 프로젝트로 마이그레이션 하는 것이 아니라면 noImplicitAny를 설정하는 것이 좋다.
"undefined는 객체가 아닙니다" 같은 런타임 오류를 방지 하기 위해서 strictNullChecks를 설정하는 것이 좋다.
타입스크립트에서 엄격한 체크를 하고 싶다면 strict 설정을 고려하는 것이 좋다.
'TypeScript > 이펙티브 타입스크립트' 카테고리의 다른 글
아이템 3 코드 생성과 타입이 관계없음을 이해하기 (1) | 2024.09.13 |
---|---|
Typescript와 Javascript의 관계 이해하기 (0) | 2024.08.26 |