반응형

이 오류 메시지는 TypeScript와 관련이 있으며, err이라는 변수의 타입을 TypeScript가 컴파일 시간에 결정할 수 없다는 것을 나타낸다.

TypeScript에서 unknown 타입은 모든 타입의 값을 나타내지만, 컴파일 시간에 타입이 알려지지 않은 값을 나타냅니다. 이는 any 타입과 다릅니다. any 타입은 모든 타입의 값을 나타내며 타입 체크 없이 모든 연산을 수행할 수 있다.

이 오류를 해결하려면 타입 어서션을 사용하여 err 변수의 타입을 TypeScript에 알리거나 타입 가드를 사용하여 err 변수의 가능한 타입을 좁힐 수 있다.

예를 들어, err이 문자열인 것을 알고 있다면, 타입 어서션을 사용하여 err의 타입을 TypeScript에 알릴 수 있다.

 

const err: unknown = 'This is an error';
console.log((err as string).toUpperCase());

 

또는 타입 가드를 사용하여 err의 타입을 확인한 후 사용할 수 있다.

 

const err: unknown = 'This is an error';
if (typeof err === 'string') {
  console.log(err.toUpperCase());
}

타입 가드를 사용하면 if 블록 내에서 err이 문자열이라는 것을 TypeScript가 알 수 있으므로 toUpperCase() 메소드를 오류없이 호출할 수 있다.

반응형

'Basic > TypeScript' 카테고리의 다른 글

[Typescript] Type guard 개념 및 예시  (0) 2023.03.19
TypeScript란?  (0) 2022.10.30
Typescript를 이용한 tree 순회 코드  (0) 2022.07.26