본문 바로가기
Typescript

230613/230803 타입스크립트 제네릭타입

by hyerin1201 2023. 6. 13.

타입스크립트 제네릭타입

<T> 

제네릭 타입을 사용하는 이유는 타입으로 숫자, 문자열, 클래스 함수 등 단정지을 수 없는 경우

 

제네릭타입을 사용하는 방법 

(1) 함수

function identity<T>(arg: T): T {
  return arg;
}

arg 라는 매개변수에 어떤 값이들어올지 모를때, T 라는 타입변수를 준다.

그리고 매개변수 앞에 타입변수를 사용할 것이라는 선언으로 < T>를 사용한다.

**타입변수 T를 활용한 제네릭 형태의 함수


(2) 타입별칭

type IValuable<T> = {
  vlaue : T;
};

 

(3) 클래스

 

(4) 인터페이스 

클래스(동일한 속성의 객체를 반복적으로 생성하기 위함)  <-> 인터페이스 (객체의 타입 형태 정의)

 

 

 

*함수에서 return 값을 쓰지 않는 경우 반환값의 타입을 void로 꼭 지정해주기

export class Bird {
  fly() {console.log(`I'm flying`)}
}
export class Fish {
  swim() {console.log(`I'm swimming`)}
}
import { Bird, Fish } from "./Birdandfish";

export const flyOrSwim = (o: Bird | Fish): void => {
  if(o instanceof Bird) {
    o.fly();
  } else if(o instanceof Fish) {
    o.swim();
  }
}
import { Bird, Fish } from "./Birdandfish";
import { flyOrSwim } from "./FlyorSwim";

[new Bird, new Fish].forEach(flyOrSwim);

 

 

 

Node.js  => npm / module

.ts => JS 기반으로하는 슈퍼셋이다.

(*JS구문의 타입을 정의 / 대규모 프로젝트 진행시, 사전에 버그를 차단)

타입종류 : 원시타입 / 리터럴타입

객체 : 인터페이스 활용 타입정의 / 인터페이스 활용 클래스 / 구조할당

함수: 매개변수, 반환값의 타입정의 / 일급시민함수의 특징및 조항 / 고차함수 

배열: map / reduce / filter / 

튜플: 타입갯수와 종류까지 정의반복기,생성기 : 이터러블객체, 이터레이터객체, Next( ) /  제너레이터객체 콜백함수: 프로미스객체 /  resolve, reject / then, catch비동기: async, await제네릭타입교집합타입, 합집합타입타입가드