Web Development/TypeScript

제네릭 타입과 any 타입의 차이점

쟤리 2024. 10. 24. 14:19
728x90
반응형

제네릭 타입any 타입의 가장 큰 차이점은 타입 안전성유연성임.

 

제네릭은 타입을 명확하게 지정하면서도 다양한 타입을 지원할 수 있는 방식임.

제네릭 타입을 사용하면, 그 타입에 따라 함수나 클래스가 구체적으로 동작하게 됨.

즉, 타입을 유지하면서도 코드의 재사용성을 극대화할 수 있음.

제네릭의 특징:

  • 타입 안전성 보장: 컴파일 시 타입이 명확하게 지정되므로, 올바른 타입만 처리하도록 코드가 제한됨.
  • 유연성: 다양한 타입을 하나의 함수나 클래스에서 처리할 수 있음.
  • 타입 추론 가능: 함수나 클래스를 호출할 때, 제네릭이 자동으로 타입을 추론하기 때문에 코드가 더 간결해질 수 있음.

2. any 타입:

any는 모든 타입을 허용하는 타입임. 즉, 어떤 값이든 다 받을 수 있지만, 타입 안전성을 잃게 됨. any를 사용하면 컴파일러가 타입 검사를 하지 않기 때문에 오류를 감지할 수 없고, 코드가 더 불안정해질 가능성이 있음.

any의 특징:

  • 유연성은 높지만 위험: 어떤 타입이든 받을 수 있으므로 매우 유연하지만, 잘못된 타입을 사용할 경우에도 오류가 발생하지 않음.
  • 타입 안전성 없음: 컴파일러가 타입 오류를 잡아내지 못함.
  • 추론 불가: any는 타입이 명확하지 않으므로, 이후 코드에서 해당 값이 어떤 타입인지 알 수 없음.

제네릭 타입은 각 칸에 들어갈 맞춤형 용기를 미리 준비하는 것이라면, any 타입은 어떤 물건이든 던져넣을 수 있는 무한한 크기의 상자에 가깝다고 볼 수 있음. 제네릭은 각 물건의 맞춤형 용기라서 안전하지만, any는 너무 자유로워서 물건이 망가질 위험이 있음.

 

비교 요약:

  • 제네릭 타입 (T): 컴파일 시점에 타입을 지정하고, 지정된 타입에 따라 동작. 타입 안전성을 제공하며, 재사용성이 높음.
  • any 타입: 모든 타입을 허용하지만, 타입 검사를 하지 않음. 유연하지만 타입 안전성이 없음. 잘못된 사용을 감지할 수 없음.
728x90
반응형

'Web Development > TypeScript' 카테고리의 다른 글

자주 사용하는 TypeScript 문법 정리  (0) 2024.10.12