-
(TypeScript) - Any 타입과 Unknown 타입개발/TypeScript 2025. 8. 19. 13:48반응형
■ Any 타입
let anyVar = 10; anyVar = 'hello';TypeScript 는 기본적으로 타입을 넣지 않으면 그 값에 할당된 값으로 타입을 추론한다.
따라서 다음 코드에서도 anyVar 가 number 타입으로 추론되면서 오류 문구가 뜬다.
여기서 우리가 특정 변수의 타입을 우리가 확실히 모를 때
마치 자바스크립트처럼 우리가 원하는 값을 넣고 싶다면 any 를 사용하면 된다.
let anyVar: any = 10; anyVar = 'hello'; anyVar = true;이렇게 되면 어떤 타입이던지 anyVar 변수에 넣을 수 있게 된다.
anyVar.toUpperCaser(); anyVar.toFixed();
그래서 다음과 같이 메서드도 마치 자바스크립트와 같이 자유롭게 사용이 가능해진다.let num: number = 10; num = anyVar;더불어 다음과 같이 모든 타입의 변수에 any 타입을 넣을 수 있다.
여기서도 number 타입 변수 num 에 any 타입을 넣을 수 있는 것이다.
즉, 일명 모든 타입 검사를 통과하는 치트키 같은 모습을 보인다.
하지만 이는 곧 타입 검사를 안한다는 뜻으로,
타입스크립트의 이점을 사용하지 않는 것과 같다.
따라서 any 타입은 웬만하면 사용하지 않는 것을 추천한다.
■ unknown
// unknown let unknownVar: unknown; unknownVar = ''; unknownVar = 1; unknownVar = () => {}; num = unknownVar;unknown 타입은 any 동일하게 모든 타입을 담을수는 있지만
차이점으로 모든 타입이 unknown 을 담지는 못한다.
unknown 타입에서는 메서드도 이전과 같이 맘대로 사용하지 못하고,
덧셈, 뺄셈, 곱셈, 나눗셈 등의 연산 자체도 쓸 수 없다.
if (typeof unknownVar === 'number') { num = unknownVar; }이런 식으로 타입을 정제하면 사용이 가능하지만 그렇지 않은 경우에는 불가능하다.
따라서 우리가 값이 불확실할 때는 조금 더 안전한 unknown 타입을 활용하는 것이 좋다.
반응형'개발 > TypeScript' 카테고리의 다른 글
(TypeScript) - 타입은 집합이다 (슈퍼타입, 서브타입, 업캐스팅, 다운캐스팅) (0) 2025.08.19 (TypeScript) - TypeScript void 와 never 타입 (0) 2025.08.19 (TypeScript) - TypeScript Enum 타입 (0) 2025.08.19 (TypeScript) - TypeScript 타입 별칭과 인덱스 시그니처 (0) 2025.08.19 (TypeScript) - TypeScript 객체 (0) 2025.08.18