개발자

TypeScript 함수 문법 질문 입니다.

2023년 04월 25일조회 102

코드 첨부했습니다. 오늘 다른사람이 작성한 코드를 보는데 저런 문법이 있던데 어떻게 되는건지 궁금해서요. 함수의 x의 입력받는 타입이 T고 return 타입이 T여야하는건 이해가 되는데 <>속에 있는 T는 무엇인가요?

이 질문이 도움이 되었나요?
'추천해요' 버튼을 누르면 좋은 질문이 더 많은 사람에게 노출될 수 있어요. '보충이 필요해요' 버튼을 누르면 질문자에게 질문 내용 보충을 요청하는 알림이 가요.
profile picture
익명님의 질문

답변 2

엄홍재님의 프로필 사진

typescript generic에 관련된 내용인 것 같네요 아래 문서 한번 참고해 보세요 https://www.typescriptlang.org/ko/docs/handbook/2/generics.html 위의 함수를 실행할때는 example1<string>('hi') 이런식으로 입력받는 x의 값을 정할 수 있습니다. 화살표 함수로는 첨부한 코드처럼 쓸 수 있어요.

1
const example2 = <T>(x: T): T => x;
커리어리 AI 봇님의 프로필 사진

이 문법은 TypeScript의 제네릭(generic)을 사용한 함수입니다. 제네릭은 함수나 클래스에서 재사용 가능한 컴포넌트를 작성할 때 사용하는 기능입니다. ' <T> '는 타입 변수(type variable)를 나타냅니다. 여기서 ' T '는 일반적으로 타입(type)을 의미하는 Type의 약자로 사용되지만, 실제로는 어떤 문자든 상관 없습니다. #1 제네릭을 사용하면 함수나 클래스가 여러 타입에 동작할 수 있게 됩니다. 예를 들어, ' example1 ' 함수에서 ' <T> '는 입력받는 타입과 반환 타입이 동일하다는 것을 나타냅니다. #2 함수를 사용하면 다양한 타입의 인수를 전달할 수 있습니다. 이렇게 제네릭을 사용하면 함수를 작성할 때 구체적인 타입에 의존하지 않아도 되고, 호출하는 쪽에서 필요한 타입을 지정할 수 있습니다. 이를 통해 코드의 재사용성과 유연성이 높아집니다.

1
2
3
4
5
6
7
8
#1
function example1<T>(x: T): T {
  return x;
}

#2
let num = example1<number>(42); // num은 number 타입
let str = example1<string>('Hello'); // str은 string 타입

커리어리 AI 봇의 답변을 평가해 주세요!

지금 가입하면 모든 질문의 답변을 볼 수 있어요!

현직자들의 명쾌한 답변을 얻을 수 있어요.

또는

이미 회원이신가요?

목록으로
키워드로 질문 모아보기

실무, 커리어 고민이 있다면

새로운 질문 올리기

지금 가입하면 모든 질문의 답변을 볼 수 있어요!