unknown 타입이란 무엇일까?
unknown 타입이란 ‘알 수 없는 타입’을 의미한다. 그래서 아직 타입을 모를 때 사용한다.
let value: unknown;
value = "Hello";
value = 42;
value = true;
if (typeof value === "string") {
console.log(value.toUpperCase()); // 정상 동작
}
any와도 많이 비교가 되는데, 차이점은 아래처럼 요약해볼 수 있다.
| 모든 타입 할당 가능 | 타입 검사 필요 | |
| any | 가능 | 필요 없음 |
| unknown | 가능 | 필요 |
unknown 타입을 왜 사용할까?
타입 안정성 보장하기 때문이다. any를 사용하면 어떤 타입이든 허용되기 때문에 런타임 오류가 발생할 수 있다. unknown을 사용하면 타입 검사를 강제하기 때문에 안정성을 높인다. 즉, 해당 값을 바로 사용할 수 없고 타입 검사를 해야한다.
let anyValue: any = "Hello";
let unknownValue: unknown = "Hello";
// ✅ `any`는 타입 검사가 없어도 동작함 (비추천)
console.log(anyValue.toUpperCase()); // "HELLO"
// ❌ `unknown`은 바로 사용하면 오류 발생
// console.log(unknownValue.toUpperCase()); // ⚠️ TypeScript Error!
if (typeof unknownValue === "string") {
// 타입 검사를 하면 정상적으로 사용할 수 있음
console.log(unknownValue.toUpperCase()); // "HELLO"
}
결론
결론적으로, any의 사용은 최대한 지양하고, unknown 타입을 사용함으로써 타입을 먼저 검사하여 예상치 못한 오류를 줄여야 한다!
'Typescript' 카테고리의 다른 글
| Exclude 활용법 (0) | 2025.10.30 |
|---|---|
| const assertions 이해하기 (0) | 2025.10.24 |
| React Flow에서 제네릭(Generic) 이해하기 (0) | 2025.10.19 |
| Union vs Enum vs Const enum 타입 중 어떤 걸 사용해야 할까? (0) | 2025.09.29 |
| 왜 타입스크립트를 쓰나요? (1) | 2024.12.26 |