타입스크립트에서 지정할 타입이 너무 긴 경우, 타입 변수를 따로 만들 수 있다.
let 동물: string | number | undefined; // 타입 지정 너무 김
type Animal = string | number | undefined;
let 동물2: Animal = "cat";
type alias 이름은 관습적으로 대문자로 시작한다.
오브젝트도 적용 가능하다
type AnimalType = { name: string; age: number };
let 동물3: AnimalType = { name: "abbc", age: 10 };
다음과 같이 타입을 합칠 수 있다.
type Name = string;
type Age = number;
type Person = Name | Age;
오브젝트는 &
로 합칠 수 있다. 오브텍트 extend라고 한다.
type PositionX = { x: number };
type PositionY = { y: number };
type PositionXY = PositionX & PositionY;
함수 패러미터와 리턴 타입을 alias로 지정 가능하다
// type alias에 함수 type 저장하는 법
type 함수타입 = (a: string) => number;
let 함수: 함수타입 = function (a) {
return 10;
};
오브젝트 내의 속성으로 함수를 넣을 수도 있는데, 이 경우에는 다음과 같이 타입 지정이 가능하다
// object 에 함수 저장할 수 있음
type UserType = {
name: string;
plusOne: (a: number) => number;
changeName: (a: string) => void;
};
let 회원정보: UserType = {
name: "kim",
plusOne(a) {
return a + 1;
},
changeName: (a) => {
회원정보.name = a;
},
};
type 변수는 재정의가 불가능하다
type PositionX = { x: number };
type PositionX = string; // error