■ 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 |