카테고리 없음
🔥 TypeScript에서 any 대신 쓰는 3가지 타입 (Best Practices)
쪽제비
2025. 2. 23. 07:19
TypeScript를 사용할 때 가장 나쁜 습관 중 하나가 any
타입을 남발하는 것이다.any
를 사용하면 TypeScript의 타입 안정성을 잃게 되고, 예상치 못한 버그가 발생할 가능성이 커진다.
이번 글에서는 any
를 대체할 수 있는 세 가지 안전한 타입을 소개한다.
✅ 1. unknown
타입 (안전한 대체 타입)
unknown
은 any
와 비슷하지만 타입 검사를 강제하는 장점이 있다.
즉, 값이 어떤 타입인지 확실하지 않을 때 any
대신 unknown
을 쓰면 안전성이 올라간다.
typescript
function processData(data: unknown) {
if (typeof data === "string") {
console.log(data.toUpperCase()); // ✅ 안전함
} else {
console.log("Not a string");
}
}
💡 any
를 사용하면 타입 검사를 우회하지만, unknown
을 쓰면 타입을 직접 체크해야 한다.
✅ 2. 제네릭 (Generic) 활용
제네릭을 사용하면 함수나 클래스를 정의할 때 타입을 유연하게 설정할 수 있다.
이 방법은 컴파일 타임에 타입을 결정하므로, any
보다 훨씬 안전하다.
typescript
function wrapValue<T>(value: T): T {
return value;
}
const num = wrapValue<number>(42); // 🔥 TypeScript가 자동으로 타입 체크
const str = wrapValue<string>("hello");
💡 제네릭을 활용하면 타입 안정성을 유지하면서도 유연한 코드를 작성할 수 있다.
✅ 3. 유니온 타입 (Union Type)
여러 개의 타입을 가질 수 있는 경우 any
대신 유니온 타입을 활용하면 타입 안정성을 유지할 수 있다.
typescript
function formatData(value: string | number) {
if (typeof value === "string") {
return value.toUpperCase();
} else {
return value.toFixed(2);
}
}
console.log(formatData("hello")); // "HELLO"
console.log(formatData(3.1415)); // "3.14"
💡 유니온 타입을 사용하면 특정 타입만 허용할 수 있어, any
를 남용하지 않아도 된다.
🎯 결론: any
대신 안전한 타입을 쓰자!
❌ Avoid (나쁜 예) | ✅ Use Instead (좋은 예) |
---|---|
any |
unknown (타입 검사 필수) |
any |
Generic (<T> 활용) |
any |
Union Type (` |
🔥 TypeScript를 제대로 활용하려면 any
를 피하고 더 안전한 타입을 사용해야 한다!
🚀 이 글이 도움이 되었다면, 댓글로 의견을 남겨주거나 공유해 주세요! 😊