질문
interface는 호환성도 좋고 선언 합침도 쉽고
함수의 오버로딩도 가능한데 type대신 interface를 사용하는 것이 더 좋은 것 아닌가요? 왜 이 둘을 나눈 것인가요?
답변
안녕하세요 이정환입니다.
아래 AI인턴이 거의 완벽한 답을 해 주었네요
우선 질문주신대로 interface는 type 별칭과 비교해 선언 합침 이나 상속 등의 다양한 기능을 제공합니다 다만 인덱스드 엑세스 타입이나 유니온 타입등을 만들때에는 사용할 수 없기 때문에 이럴 경우 type 별칭을 사용하곤 합니다.
타입스크립트 개발자분들께서 왜 그렇게 언어를 설계하였는지 자세한 이유까지는 알기 어렵지만 개인적인 주관을 말씀드려보자면
먼저 인터페이스는 객체의 타입을 정의하기 위한 용도로 만들어 졌기 때문에 상속이나 합침 등의 기능을 지원하고 클래스가 상속받도록 만들수도 있어 클래스의 인스턴스나 메서드 타입을 정의하는 용도로도 활용됩니다.
타입 별칭의 경우에는 객체 지향 개념 없이 단순히 타입에 별도의 이름을 붙여 부르는 타입을 담는 변수 정도의 역할로 설계되었다고 보는게 좋을 것 같습니다.