inflearn logo
강의

Course

Instructor

[Code Factory] [Beginner] Complete Typescript Course from Code Factory in Just 8 Hours

Using Generics in Functions

재너릭이랑 any 차이가 뭔가요?

221

kikai

22 asked

0

재너릭에서 사용하는 <T> 가 어떤 타입 넣어도 괜찮은 거 같은데 any랑 차이점이 있을까요 ?

typescript

Answer 2

0

codefactory

안녕하세요!

"어떤 타입을 넣어도 된다"의 문제가 아니라 Generic을 사용하면 해당 타입을 나중에 타입 변수로 사용이 가능해집니다.

즉, any 타입을 사용하게 되면 말 그대로 아무 타입이지만 Generic을 사용해서 T 타입이 어떤 타입인지 지정해주면 해당 스코프 안에서 T 타입을 사용하는 경우 지정한 T 타입이 절대적으로 지켜지도록 할 수 있습니다. (적어도 컴파일러가 알 수 있는 상황에는)

감사합니다!

0

communityai8509

안녕하세요, 인프런 AI 인턴입니다. 마이티님!

Typescript에서의 제네릭 <T>any의 차이를 설명드리겠습니다.

제네릭 <T>는 코드를 작성할 때 타입을 명시하지 않고도 다양한 타입을 허용하여 유연하게 쓸 수 있도록 해줍니다. 제네릭을 사용하면 함수나 클래스가 사용될 때 구체적인 타입을 매개변수로 전달받게 됩니다. 이를 통해 타입 안전성을 유지하면서도 여러 타입에 대응할 수 있습니다.

반면에 any는 그 어떤 타입도 허용하므로 쓰기에는 간편하지만 타입 체크가 전혀 이루어지지 않아서 오류를 사전에 방지할 수 없는 단점이 있습니다. any를 많이 사용하게 되면 TypeScript의 타입 검사의 장점을 살리기 어려워지고 코드가 JavaScript에 가까워져 타입의 이점이 사라지게 됩니다.

결국, 제네릭을 사용하는 것은 코드의 타입 안정성을 향상시키면서 유연성을 유지할 수 있다는 점에서 any와 차이가 있습니다. 제네릭을 사용하면 컴파일 시점에 타입 체크가 가능하여 더 안전한 코드를 작성할 수 있습니다.

이와 관련된 추가 설명은 강의나 다른 질문에서도 다루어질 수 있으니 아래의 링크를 참고하시면 도움이 될 것입니다:
- “Typescript 제네릭 완벽 가이드”

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

ts강의 42. override 마지막즘 질문

0

42

1

25. js array의 문제점 4:55쯤 질문입니다

0

31

1

union 기본기 7분 53초 질문 드립니다.

0

117

2

Equality Narrowing 관련 질문

0

117

2

tsconfig.json 설명

0

124

2

환불 관련 질문 드립니다.

0

179

1

리플렉션과 데코레이터 사용시 의문점

0

135

2

변수의 선언이 중복되었다고 할 때

0

162

2

type 으로 함수의 형식을 정의하고 함수를 정의할 때

0

144

1

declare 키워드가 가끔 나오던데 이건 뭔가요?

0

150

2

class가 값이 될 수 있다는 말을 이해하기 어렵습니다.

0

127

1

null값의 타입은 object 아닌가요?

0

188

1

타입? 인터페이스? 질문있습니다

0

147

1

type functionOnly = Extract<string| (()=> void), Function> 의 의미

0

171

2

npm install cache error

0

205

1

12_experimental_decorator, class decorator

0

131

1

9_class/7_override.ts, super 키워드 질문

0

211

2

강의 계획이 궁금합니다!

0

289

1

instantiator 질문

0

151

1

따라하는데 에러 생기네요

1

390

2

webstorm에서 ts-node 설치해도 문제가 발생하고 있습니다.

0

485

3

infer를 사용한 type의 쓰임새

0

131

1

혹시 수업하면서 작성된 코드는 따로 받아 볼 수 없나요?

0

203

1

object intersection에서 유니언으로 타입 질문

1

129

1