[typescript] 타입 별칭과 인터페이스의 차이점과 공통점
타입 스크립트(TypeScript)에서 type
과 interface
는 둘 다 코드 베이스의 타입 시스템을 정의하는 데 사용됩니다. 그러나 두 가지 방식은 각각 다른 목적과 특징을 가지고 있습니다. 이번 포스트에서는 타입 별칭과 인터페이스의 차이점과 공통점에 대해 알아보겠습니다.
타입 별칭 (Type Alias)
타입 별칭은 이미 존재하는 타입에 대해 새로운 이름을 지정하는데 사용됩니다. 이는 새로운 복잡한 타입을 만들거나 간단한 유형을 단순하게 표현할 때 유용합니다.
예시
type MyString = string;
type Age = number;
type Customer = {
name: string;
age: number;
};
타입 별칭은 유니온 타입, 인터섹션 타입 등과 함께 사용할 수 있으므로 유연하게 적용할 수 있습니다.
인터페이스 (Interface)
인터페이스는 객체의 구조를 정의하는 데 사용됩니다. 핵심 목적은 변수, 함수 또는 클래스에 대한 형태를 선언하는 것입니다.
예시
interface Person {
name: string;
age: number;
greet: () => void;
}
인터페이스는 상속과 병합이 가능하므로, 여러 인터페이스를 조합하여 하나의 인터페이스로 만들 수 있습니다.
공통점
- 둘 다 새로운 타입을 만들기 위해 사용됩니다.
- 코드의 가독성을 높이고 재사용성을 높일 수 있습니다.
차이점
- 타입 별칭은 객체뿐만 아니라 유니온, 인터섹션 등 다양한 타입을 정의하는 데 사용될 수 있지만, 인터페이스는 주로 객체를 정의하는 데 사용됩니다.
- 인터페이스는 확장이 가능하지만, 타입 별칭은 불가능합니다.
타입 별칭과 인터페이스는 각각의 특징에 따라 적절한 상황에 사용될 수 있습니다. 개발자는 코드의 필요성과 목적에 따라 두 가지 방식 중 적합한 것을 선택할 수 있어야 합니다.
참고 문헌: