중복된 이름을 사용할 수 없다
/** 타입 별칭 */ type User = { id: number; name: string; nickname: string; birth: string; bio: string; location: string; }
규칙을 위반하지 않으면 모든 객체를 허용한다.
/** 인덱스 시그니처 */ type CountryCodes = { [key: string]: string; }
type을 적으면 반드시 있어야 되는 타입으로 고정된다.
type CountryNumber = { [key: string]: number; Korea: number; }
인덱스 시그니쳐를 사용할 경우 시그니처 기반으로 하여 타입을 정해주어야 한다.
type CountryNumber = { [key: string]: number; Korea: string; // -> 인덱스 시그니처 와 다르기 때문에 에러 발생 }