타입스크립트에서 타입 별칭과 인터페이스는 코드 베이스를 구조화하고 타입을 선언하는 데 사용됩니다. 이 두 가지 개념은 유사해 보일 수 있지만, 필수 프로퍼티의 정의 방식에서 조금 다르다는 점에 주목해야 합니다.
타입 별칭
타입 별칭은 기존 타입에 이름을 지어주는 방식으로 사용됩니다. 이를 통해 코드의 가독성을 높일 수 있으며, 유니온 타입이나 인터섹션 타입 등을 간결하게 표현할 수 있습니다.
type Point = {
x: number;
y: number;
};
type ID = string | number;
위 예시에서 Point
와 ID
는 기존의 타입을 간결하게 나타내는 이름으로 사용됩니다.
인터페이스
인터페이스는 객체의 모양(shape)을 정의하는 데 사용됩니다. 필수적으로 포함되어야 하는 프로퍼티를 명시할 수 있습니다.
interface Point {
x: number;
y: number;
}
interface Config {
width: number;
height: number;
}
위 예시에서 Point
와 Config
인터페이스는 해당하는 객체가 최소한 정의된 프로퍼티를 가져야 함을 나타냅니다.
필수 프로퍼티
두 가지 방식의 가장 큰 차이점은 필수 프로퍼티를 정의하는 방법입니다. 타입 별칭은 새로운 타입을 정의하기 때문에 필수 프로퍼티를 명시할 수 없지만, 인터페이스는 필수 프로퍼티를 명시할 수 있습니다.
type Option = {
width?: number;
height?: number;
};
interface Config {
width: number;
height: number;
}
위의 예시에서 Option
타입은 width
와 height
프로퍼티가 모두 선택적(optional)인 반면, Config
인터페이스는 width
와 height
를 필수로 가져야 합니다.
결론
타입 별칭과 인터페이스는 모두 유용한 도구로, 어떤 상황에 더 적합한지는 개발 환경과 요구 사항에 따라 다를 수 있습니다. 이 두 가지 방법을 적절히 활용하여 타입을 정의하고 코드를 구조화하는 것이 중요합니다.
이러한 세부 점을 이해하면 코드를 더욱 효율적으로 작성하고 유지보수할 수 있습니다.
참조: