unknown 타입이 무엇인가요?

0

기술면접 - TS

목록 보기
5/18

unknown 타입이 무엇인가요?

unknown 타입의 개념

unknown은 타입스크립트 3.0 버전부터 도입된 타입 중 하나입니다. unknown 타입은 any와 유사하게 모든 종류의 값을 나타낼 수 있지만, 명시적인 타입 체크를 요구합니다. 즉, unknown 타입을 사용하는 변수나 매개변수에는 타입 검사나 타입 변환을 진행해야만 해당 값에 접근할 수 있습니다.

unknown 타입 사용 예시

unknown 타입은 다음과 같은 상황에서 주로 사용됩니다:

  1. 동적 타입 검사: unknown 타입은 다른 타입으로 할당하기 전에 타입 검사를 거쳐야 합니다. 이는 외부에서 받은 값의 타입을 검사하여 안전하게 사용할 수 있는지 확인할 때 유용합니다.

  2. 타입 가드(Type Guard): unknown 타입은 타입 가드를 사용하여 타입을 좁힐 수 있습니다. 즉, unknown 타입을 좁히는 조건문을 사용하여 더 구체적인 타입으로 추론하고 안전하게 사용할 수 있습니다.

  3. 동적 데이터 처리: 외부 API 호출이나 JSON 데이터와 같이 런타임에서 타입이 확정되지 않은 경우에 unknown 타입을 사용하여 데이터를 처리할 수 있습니다.

unknown 타입이 any 타입과 다른 점

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 변수의 값을 안전하게 사용할 수 있습니다.

profile
지치지 않는 백엔드 개발자 김성주입니다 :)

0개의 댓글