본문 바로가기
Language/TypeScript

unknown, any

by Zayne 2023. 2. 15.

■ any

 

interface A {
  talk: () => void;
}

const a: A = {
  talk() {
    return 3;
  },
};

// any의 문제점 : 타입 검사를 포기, 존재하지 않는 메소드의 호출이 가능해짐
const b: any = a.talk();
b.method(); // 존재하지 않는 메소드이지만 에러 표시 안됨

 

■ unknown

 

interface A {
  talk: () => void;
}

const a: A = {
  talk() {
    return 3;
  },
};

// unknown 사용시에는 타입을 사용자가 지정. 현재 타입을 모를 때 사용
const c: unknown = a.talk();
(c as A).talk();

 

unknown 대표 예시

 

try {
} catch (error) {
  // error 의 타입 : unknown
  (error as Error).message;
}

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

커스텀 타입 가드  (0) 2023.02.18
타입 가드  (0) 2023.02.16
void  (0) 2023.02.13
타입과 인터페이스 상속  (0) 2023.02.11
union(|)과 intersection(&)  (0) 2023.02.09