제목
제네릭 (Generics)
카테고리
프로그래밍/소프트웨어 개발
서브카테고리
개발 툴
대상자
- 대상자: TypeScript를 사용하는 개발자, 타입스크립트의 타입 추론 및 제네릭 개념을 이해하고자 하는 초보자
- 난이도: 중간 (타입스크립트의 타입 시스템 이해가 필요)
핵심 요약
any
타입의 단점: 타입 정보를 잃어 런타임 오류 발생 가능unknown
타입의 특성: 타입 검증 없이는 메서드 호출 불가능- 제네릭(
Generics
)의 장점: 타입 안전성 유지 + 타입 추론 자동화
섹션별 세부 요약
1. `any` 타입의 문제점
any
타입은 모든 값 허용 → 타입 정보 손실- 예:
num.toUpperCase()
는any
타입으로 인해 컴파일 오류 없음 - 결과: 런타임 시
num
이string
이 아닐 경우 에러 발생
2. `unknown` 타입의 강제 검증
unknown
타입은 타입 검증 없이 메서드 호출 불가능- 예:
num.toUpperCase()
는unknown
타입으로 인해 컴파일 오류 발생 - 목적: 타입 안전성 강화 → 런타임 오류 예방
3. 제네릭(`Generics`)의 적용
- 제네릭은 타입 변수를 활용해 함수/클래스에 타입 정보 전달
- 예:
function func
(value: T): T { return value; } - 효과:
T
타입에 따라 타입 추론 자동화 및 컴파일 타임 검증 강화
결론
- 실무 팁:
any
대신 제네릭(Generics
) 사용 → 타입 안전성 확보 - 예시:
function func
(value: T): T { return value; } - 핵심: 제네릭은 타입 추론 + 컴파일 타임 검증을 동시에 달성하는 최적의 솔루션