이번 글에서는 타입스크립트 타입의 동적 환경을 탐색하고, any
, void
, never
, null
, 그리고 엄격한 null 체크의 중요성에 대해 살펴봅니다. 이러한 타입을 이해하는 것은 타입 안전을 유지하고 일반적인 프로그래밍 오류를 방지하는 데 필수적입니다. TypeScript의 타입 역학에 대해 알아보세요.
1. Any Type
any
타입은 모든 타입의 값을 나타내는 데 사용됩니다. 기본적으로 특정 변수나 표현식에 대한 타입 검사를 사용하지 않습니다.
let myVariable: any = 'Hello, TypeScript!';
myVariable = 42; // No type error
any
를 사용하면 편리할 수 있지만 TypeScript의 정적 타입 검사의 이점을 희생합니다.
2. Void Type
void
타입은 값을 반환하지 않는 함수에 사용됩니다. 함수에 부작용이 있지만 의미 있는 결과를 생성하지 않는 함수를 나타낼 때 자주 사용됩니다.
function logMessage(message: string): void {
console.log(message);
}
3. Never Type
never
타입은 절대 발생하지 않는 값을 나타냅니다. 예외를 던지거나 무한 루프에 들어가는 함수의 반환 타입으로 자주 사용됩니다.
function throwError(message: string): never {
throw new Error(message);
}
function infiniteLoop(): never {
while (true) {
// do something indefinitely
}
}
4. Null Type
타입스크립트에서 null
과 undefined
는 기본적으로 모든 타입의 일부입니다. 그러나 엄격 null 검사를 활성화하면 null
과 undefined
은 모든 타입과 해당 타입에만 할당할 수 있습니다.
let myString: string = null; // Error with strict null checks enabled
5. Strict Null Checks
기본적으로 TypeScript에는 변수가 null
이거나 undefined
경우 이를 명시적으로 표시하여 타입 안전성을 향상시키는 "strict null checks"라는 기능이 있습니다. 이를 통해 null 및 undefined 값과 관련된 많은 일반적인 프로그래밍 오류를 방지할 수 있습니다.
TypeScript 프로젝트에서 엄격한 null 검사를 사용하려면 tsconfig.json
파일에서 "strictNullChecks"
옵션을 true
로 설정하면 됩니다.
{
"compilerOptions": {
"strictNullChecks": true
}
}
strict null checks를 활성화하면 변수가 null
이거나 undefined
경우를 명시적으로 지정해야 합니다.
let myString: string | null = null; // OK with strict null checks
let myNumber: number | undefined = undefined; // OK with strict null checks
결론
TypeScript의 이러한 기능을 사용하면 보다 안전하고 예측 가능한 코드를 작성하여 런타임 오류 발생 가능성을 줄이고 애플리케이션의 유지 관리성을 향상시킬 수 있습니다.
'Language > TypeScript' 카테고리의 다른 글
[TypeScript] Set/Get, Protected, Private/Public/Static Members (6) | 2024.04.24 |
---|---|
[TypeScript] OOP 관행, 클래스 및 상속 (64) | 2024.04.22 |
[TypeScript] Typing Functions and Signatures (1) | 2024.04.18 |
[TypeScript] Union, Literal, Tagged Types (2) | 2024.04.17 |
[TypeScript] Type, Enum, Interface 타입 만들기 (2) | 2024.04.11 |
IT 기술과 개발 내용을 포스팅하는 블로그
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!