본문 바로가기
Language/TypeScript

[TS] Generic & Types by Inference

by 그랴 2023. 2. 10.

제네릭(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 함수 호출 방법
    1. 모든 인수 전달 (타입 인수 포함)  let output = identity<string>("myString");
    2. 타입 추론 사용  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