inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

[코드팩토리] [초급] 8시간만에 끝내는 코드팩토리의 Typescript 완전정복 풀코스

Generic in Function (함수에서 제너릭 사용하기)

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

226

마이티

작성한 질문수 22

0

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

typescript

답변 2

0

코드팩토리

안녕하세요!

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

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

감사합니다!

0

인프런 AI 인턴

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

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

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

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

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

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

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

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

0

49

1

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

0

39

1

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

0

128

2

Equality Narrowing 관련 질문

0

122

2

tsconfig.json 설명

0

129

2

환불 관련 질문 드립니다.

0

187

1

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

0

139

2

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

0

173

2

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

0

154

1

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

0

158

2

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

0

132

1

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

0

191

1

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

0

150

1

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

0

177

2

npm install cache error

0

207

1

12_experimental_decorator, class decorator

0

137

1

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

0

217

2

강의 계획이 궁금합니다!

0

294

1

instantiator 질문

0

156

1

따라하는데 에러 생기네요

1

400

2

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

0

495

3

infer를 사용한 type의 쓰임새

0

133

1

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

0

210

1

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

1

132

1