답변 2
0
안녕하세요!
"어떤 타입을 넣어도 된다"의 문제가 아니라 Generic을 사용하면 해당 타입을 나중에 타입 변수로 사용이 가능해집니다.
즉, any 타입을 사용하게 되면 말 그대로 아무 타입이지만 Generic을 사용해서 T 타입이 어떤 타입인지 지정해주면 해당 스코프 안에서 T 타입을 사용하는 경우 지정한 T 타입이 절대적으로 지켜지도록 할 수 있습니다. (적어도 컴파일러가 알 수 있는 상황에는)
감사합니다!
0
안녕하세요, 인프런 AI 인턴입니다. 마이티님!
Typescript에서의 제네릭 <T>
와 any
의 차이를 설명드리겠습니다.
제네릭 <T>
는 코드를 작성할 때 타입을 명시하지 않고도 다양한 타입을 허용하여 유연하게 쓸 수 있도록 해줍니다. 제네릭을 사용하면 함수나 클래스가 사용될 때 구체적인 타입을 매개변수로 전달받게 됩니다. 이를 통해 타입 안전성을 유지하면서도 여러 타입에 대응할 수 있습니다.
반면에 any
는 그 어떤 타입도 허용하므로 쓰기에는 간편하지만 타입 체크가 전혀 이루어지지 않아서 오류를 사전에 방지할 수 없는 단점이 있습니다. any
를 많이 사용하게 되면 TypeScript의 타입 검사의 장점을 살리기 어려워지고 코드가 JavaScript에 가까워져 타입의 이점이 사라지게 됩니다.
결국, 제네릭을 사용하는 것은 코드의 타입 안정성을 향상시키면서 유연성을 유지할 수 있다는 점에서 any
와 차이가 있습니다. 제네릭을 사용하면 컴파일 시점에 타입 체크가 가능하여 더 안전한 코드를 작성할 수 있습니다.
이와 관련된 추가 설명은 강의나 다른 질문에서도 다루어질 수 있으니 아래의 링크를 참고하시면 도움이 될 것입니다:
- “Typescript 제네릭 완벽 가이드”
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.