unknown
은 타입스크립트 3.0 버전부터 도입된 타입 중 하나입니다. unknown
타입은 any
와 유사하게 모든 종류의 값을 나타낼 수 있지만, 명시적인 타입 체크를 요구합니다. 즉, unknown
타입을 사용하는 변수나 매개변수에는 타입 검사나 타입 변환을 진행해야만 해당 값에 접근할 수 있습니다.
unknown
타입은 다음과 같은 상황에서 주로 사용됩니다:
동적 타입 검사: unknown
타입은 다른 타입으로 할당하기 전에 타입 검사를 거쳐야 합니다. 이는 외부에서 받은 값의 타입을 검사하여 안전하게 사용할 수 있는지 확인할 때 유용합니다.
타입 가드(Type Guard): unknown
타입은 타입 가드를 사용하여 타입을 좁힐 수 있습니다. 즉, unknown
타입을 좁히는 조건문을 사용하여 더 구체적인 타입으로 추론하고 안전하게 사용할 수 있습니다.
동적 데이터 처리: 외부 API 호출이나 JSON 데이터와 같이 런타임에서 타입이 확정되지 않은 경우에 unknown
타입을 사용하여 데이터를 처리할 수 있습니다.
unknown
타입은 any
타입보다 타입 안정성이 높습니다. any
타입은 어떤 타입이든 자유롭게 할당하고 사용할 수 있지만, unknown
타입은 명시적인 타입 검사나 타입 변환을 거쳐야만 해당 값을 사용할 수 있습니다. 이를 통해 개발자는 타입 안정성을 유지하면서 동적인 값을 처리할 수 있습니다.
function processValue(value: unknown): void {
if (typeof value === 'string') {
console.log(value.toUpperCase()); // `unknown` 타입이 `string`으로 좁혀져 사용 가능
} else if (typeof value === 'number') {
console.log(value.toFixed(2)); // `unknown` 타입이 `number`로 좁혀져 사용 가능
} else {
console.log('Unknown value');
}
}
let data: unknown = 'Hello';
processValue(data);
위의 예시에서 data
변수는 unknown
타입으로 선언되었습니다. processValue
함수는 value
매개변수를 unknown
타입으로 받고, 해당 값을 타입 가드를 통해 타입을 좁혀가며 처리합니다. 이를 통해 data
변수의 값을 안전하게 사용할 수 있습니다.