: 정의한 타입에 대해 나중에 쉽게 참고할 수 있게 이름을 부여하는 것
// string 타입을 사용할 때
const name: string = 'capt';
// 타입 별칭을 사용할 때
type MyName = string;
const name: MyName = 'capt';
type Developer = {
name: string;
skill: string;
}
string 이나 number와 같은 간단한 타입에도 별칭을 붙일 수 있고,
interface 같은 타입에도 별칭을 붙일 수 있다.
: 상호 간에 정의한 약속 혹은 규칙을 의미
interface User {
age: number;
name: string;
}
let seho: User = {
age: 33,
name: '세호'
}
인터페이스에 정의된 속성, 타입의 조건만 만족한다면 객체의 속성 갯수와 속성 순서는 상관없다.
: 타입의 확장 가능 / 불가능 여부
인터페이스 - 확장 가능
타입 별칭 - 확장 불가능
(가능한 type 보다는 interface로 선언해서 사용하는 것을 추천)