타입스크립트 제네릭타입
<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제네릭타입교집합타입, 합집합타입타입가드
'Typescript' 카테고리의 다른 글
230807 타입스크립트 배열 -> 튜플타입 정의 (0) | 2023.08.07 |
---|---|
230801 typescript tsconfig.json 옵션 설정 (0) | 2023.08.01 |
230612/230804 반복기 생성기 / Promise (0) | 2023.06.12 |
230609/230804 타입스크립트 range( ) 함수 / 명령형,선언형프로그래밍 / 배열 함수 (0) | 2023.06.09 |
230609/230803 타입스크립트 배열의 타입정의 (0) | 2023.06.09 |