타입 별칭과 인덱스 시그니쳐 - 타입스크립트 기본

타입 별칭

// 타입 별칭 -> 코드의 중복을 막음 (함수 내의 User type이랑 해당 type이랑 별개)
type User = {
    id: number;
    name: string;
    nickname: string;
    birth: string;
    bio: string;
    location: string;
}

let user: User = {
    id: 1,
    name: "박정수",
    nickname: "GgoPpark",
    birth: "1998.09.15",
    bio: "안녕하세요",
    location:"서울시"
}

인덱스 시그니처

// 인덱스 시그니처
// 해당 key value 의 타입 패턴이 일치할 때 해당 방식으로 사용 가능
type CountryCodes ={   
    [key : string] : string;
};

let countryCodes: CountryCodes = {
    Korea : 'ko',
    UnitedState:"us",
    UnitedKingdom:"uk",
}

type CountryNumberCodes = {
    [key : string]: number;
}

// 인덱스 시그니처의 규칙만 위반하지 않으면 모두 허용 -> 프로퍼티가 없으면 위반할 프로퍼티가 없으므로 에러가 안남
let countryNumberCodes: CountryNumberCodes = {
    Korea : 410,
    UnitedState : 840,
    UnitedKingdom:826,
}