any
아무 검증을 하지 않아서 뭐든지 할 수 있다.
const value: any = "hello";
value.toUpperCase(); // ok
value(); // ok ❌ (에러 안 남)
value.nonExistent.prop(); // ok ❌
에러가 나지 않고 , 다 통과해버려서, 런타임에서 터질 위험이 있다.
unknown
뭐든 담을 수 있지만 쓸 때는 체크가 필요하다.
const value: unknown = "hello";
// value.toUpperCase(); 에러: 'unknown'은 직접 쓸 수 없음
if (typeof value === "string") { // 타입 가드 사용 !
console.log(value.toUpperCase()); // 이렇게 타입 체크 후 사용 가능
}
사용 전에 타입 확인이 필수이기 때문에, 타입 안정성을 보장할 수 있다.
| any | unknown | |
| 타입 체크 | ❌ | ✅ |
| 타입 안정성 | 낮음 | 높음 |
| 코드 자동완성/에러 감지 | 안 됨 | 잘 됨 |
| 실제로 쓰는 곳 | 빠르게 개발하거나 외부 데이터 다룰 때 | 타입은 모르지만 안전하게 다루고 싶을 때 |
'TypeScript' 카테고리의 다른 글
| [TS] TIL , as const ( const assertion ) (0) | 2025.04.22 |
|---|---|
| [TS] 인터페이스&타입 등등 (0) | 2025.04.22 |
| [TS] TIL, Narrowing (0) | 2025.04.21 |
| [TS] TIL, 타입스크립트의 컴파일러 동작 방식 (0) | 2025.04.21 |
| 카카오 Map API with React + TypeScript (1) | 2024.05.04 |