제네릭(Generic)이란
타입에 변수를 제공하는 방법
타입을 마치 함수의 파라미터처럼 사용하는 것
한 가지 타입보다 여러 가지 타입에서 동작하는 컴포넌트를 생성하는데 사용됨
타입에 상관없이 동작하기 때문에 제네릭이라고 함
// 제너릭 X
function identity(arg: any): any {
return arg;
}
// 제너릭 O
function identity<T>(arg: T): T {
return arg;
}
- T : 타입 변수
- 유저가 준 인수의 타입을 추론하여 나중에 사용할 수 있게 함
- 반환 타입으로 T를 다시 사용
- 타입 정보를 함수의 한쪽에서 다른 한쪽으로 운반할 수 있게 함
- any vs. generic
- any : 실제로 함수가 반환될 때 타입에 대한 정보를 잃음. number 타입을 넘겨도 any 타입이 반환됨
- generic : 함수가 반환될 때도 타입을 가지고 반환됨.
- generic 함수 호출 방법
- 모든 인수 전달 (타입 인수 포함) let output = identity<string>("myString");
- 타입 추론 사용 let output = identity("myString");
타입 추론(Types by Inference)이란
타입스크립트가 코드를 해석하는 과정
타입을 명시하기 위해 추가로 문자를 사용할 필요가 없음
var a = true;
a = 100; //Error
- 첫번째 줄 : 변수 a를 true를 주었기 때문에, 타입스크립트는 a를 Boolean 타입으로 추론했다.
- 두번째 줄 : Boolean 타입으로 추론된 변수 a에 number 타입의 100을 할당하였으므로 에러가 난다.
참고
https://typescript-kr.github.io/pages/tutorials/ts-for-js-programmers.html
TypeScript 한글 문서
TypeScript 한글 번역 문서입니다
typescript-kr.github.io
https://www.samsungsds.com/kr/insights/typescript.html
활용도가 높아지는 웹 프론트엔드 언어, 타입스크립트[TypeScript]
2012년 마이크로소프트가 발표한 타입스크립트(TypeScript)는 자바스크립트(JavaScript)를 기반으로 정적 타입 문법을 추가한 프로그래밍 언어입니다. 요즘은 대형 SI 프로젝트에서 흔하게 사용되고 있
www.samsungsds.com