
이번 글에서는 타입스크립트 타입의 동적 환경을 탐색하고, 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 기술과 개발 내용을 포스팅하는 블로그
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!