interface 와 type 은 타입스크립트에서 타입을 정의하는 방법으로, 둘 다 유사한 기능을 가졌지만 몇 가지 차이가 있다.
- 확장성 : interface는 확장이 가능하다. 같은 이름의 interface를 여러 번 선언하면 자동으로 합쳐진다
interface User {
name: string;
}
interface User {
age: number;
}
// User = { name : string; age: number; } 가 된다.
- 구문 : type은 다양한 구문을 지원한다. 예를 들어 | & 같은 것들이 사용 가능하다.
type User = { name: string; age: number; } | { name: string; };
결론은 개발자의 성향에 따라 다르고 프로젝트의 진행 방향에 따라 유동적으로 사용하면 될 것 같다.