TypeScript는 정적 타입을 지원하는 JavaScript의 슈퍼셋이며, 코드에서 타입을 명시적으로 지정할 수 있습니다. 그러나 때로는 타입 추론을 조정하거나 제한해야 하는 경우가 있습니다. TypeScript 컴파일러는 이러한 요구 사항을 충족하기 위해 컴파일러 플래그라는 설정 옵션을 제공합니다.
이번 글에서는 TypeScript 컴파일러 플래그를 사용하여 타입 추론을 구성하는 방법에 대해 알아보겠습니다.
컴파일러 플래그란?
컴파일러 플래그는 TypeScript 컴파일러가 코드를 변환하고 타입을 검사하는 방식을 제어하는 설정 옵션입니다. 이를 통해 타입 추론을 조정하거나 활성화/비활성화할 수 있습니다.
기본적인 타입 추론
TypeScript는 대부분의 경우 타입 추론을 통해 변수의 타입을 추측할 수 있습니다. 예를 들어, 다음 코드를 보겠습니다.
let x = 10;
위 코드에서 TypeScript는 x
가 숫자임을 추론할 것입니다.
컴파일러 플래그를 사용한 타입 추론 구성
타입 추론을 조정하기 위해 주로 사용되는 컴파일러 플래그 중 일부를 살펴보겠습니다.
noImplicitAny
기본적으로 TypeScript는 명시적으로 타입을 선언하지 않은 경우, 해당 변수의 타입을 any
로 추론합니다. 하지만 noImplicitAny
플래그를 활성화하면 컴파일러는 타입을 명시적으로 선언하지 않은 경우에 오류를 발생시킵니다.
// tsconfig.json
{
"compilerOptions": {
"noImplicitAny": true
}
}
strict
strict
플래그는 여러 가지 타입 관련 플래그들을 한꺼번에 활성화하는 편리한 방법입니다. 이 플래그를 설정하면 noImplicitAny
, strictNullChecks
, strictFunctionTypes
, strictBindCallApply
, noImplicitThis
, alwaysStrict
등이 활성화됩니다.
// tsconfig.json
{
"compilerOptions": {
"strict": true
}
}
다른 컴파일러 플래그
이 외에도 strictNullChecks
, strictFunctionTypes
, strictBindCallApply
, noImplicitThis
, alwaysStrict
등의 컴파일러 플래그를 사용하여 타입 추론을 구성할 수 있습니다.
마치며
이번 글에서는 TypeScript의 컴파일러 플래그를 사용하여 타입 추론을 구성하는 방법에 대해 알아보았습니다. 이를 통해 TypeScript를 더욱 안전하고 예측 가능한 방향으로 발전시킬 수 있습니다.
더 많은 컴파일러 플래그에 대해 알아보고자 한다면 TypeScript 공식 문서를 참고해주세요.