TypeScript에서는 코드를 타입 안전하게 유지하고 코드를 읽기 쉽고 이해하기 쉽도록 도와주는 여러 가지 타입 정의 방법이 제공됩니다. 그 중에서도 인터페이스와 타입 별칭은 코드를 구조화하고 유지보수하기 쉽도록 도와줍니다.
인터페이스란
인터페이스는 TypeScript에서 컨탄트를 정의하는 목적으로 사용됩니다. 클래스나 객체가 어떤 프로퍼티와 메소드를 가져야 하는지에 대한 규격을 정의하는 데 사용됩니다.
다음은 인터페이스의 예시입니다.
interface Person {
name: string;
age: number;
greet: () => void;
}
위 예시에서 Person
인터페이스는 name
, age
, 그리고 greet
메소드를 가져야 한다고 정의합니다.
타입 별칭이란
타입 별칭은 특정 타입이나 인터페이스에 대해서 별칭을 지정하여 사용하는 방법입니다. 이를 통해 중복된 복잡한 타입을 간결하게 나타낼 수 있고 가독성을 높일 수 있습니다.
다음은 타입 별칭의 예시입니다.
type Point = { x: number; y: number; };
이제 Point
는 { x: number; y: number; }
의 별칭으로 사용될 수 있습니다.
인터페이스와 타입 별칭 비교
인터페이스와 타입 별칭의 주된 차이점은 인터페이스는 확장(extends)이 가능하고 병합(merge) 가능하다는 것입니다.
반면에 타입 별칭은 결합할 수 없으며, 예를 들어 유니언이나 인터섹션 타입을 지정할 수 없습니다. 그래서 만약 확장이나 결합이 필요하지 않고 정적인 타입을 선언하는 것이 목적이라면, 타입 별칭을 사용하는 편이 더 적합할 수 있습니다.
마치며
코드 작성시, 인터페이스는 객체의 모양(shape)을 정의하고 메소드를 포함할 때 주로 사용되며, 타입 별칭은 복잡한 타입을 간결하게 표현하거나 유니언/인터섹션 타입을 사용할 때 주로 활용됩니다. 적절한 상황에 맞게 선택하여 코드를 작성하면 코드의 유지보수성과 가독성을 높일 수 있습니다.
여러분의 TypeScript 프로젝트에서 적합한 타입 정의 방법을 선택하여 보다 안정적이고 가독성 높은 코드를 작성해보세요!