지정할 타입이 너무 길거나 재사용하고 싶을 때 타입 별칭을 선언할 수 있다.
type AnimalType = string | number | undefined;
let 동물 :AnimalType;
type 타입변수명 = 타입종류
타입을 변수처럼 만들어서 쓰는 alias 문법은 관습적으로 대문자로 시작한다.
type 사람 = {
name : string,
readonly age : number,
job? : string,
}
let teacher :사람 = { name : 'john', age : 20 }
teacher.age = 25; //readonly라서 에러남
object 타입도 지정이 가능하다.
object 속성이 바뀌는 것을 막고 싶으면 readonly를 사용한다.
속성이 선택사항이라면 속성명 오른쪽에 ?를 붙인다.
type Name = string;
type Name = number; // 에러
type 키워드는 재정의가 불가능하다.
type NumOut = (x : number, y : number ) => number
let ABC :NumOut = function(x,y){
return x + y
}
함수 파라미터나 리턴값에 타입을 지정할 때 type alias를 사용하고 싶으면 위처럼 사용하면 된다.
type Member = {
name : string,
age : number,
plusOne : (x : number) => number,
changeName : () => void
}
let 회원정보 : Member = {
name : 'kim',
age : 30,
plusOne (x){
return x + 1
},
changeName : () => {
console.log('안녕')
}
}
회원정보.plusOne(1);
회원정보.changeName();
object methods에도 type alias 사용이 가능하다.