인터페이스와 타입 별칭 이해하기
Understanding Interfaces and Type Aliases
타입스크립트는 자바스크립트를 확장한 언어로, 정적 타입 검사를 활용하여 더 나은 코드 품질과 안정성을 제공합니다. 이 장에서는 타입스크립트의 중요한 기능인 Interfaces와 Type Aliases에 대해 알아보겠습니다.
Interfaces
Interface는 타입스크립트에서 객체의 구조를 정의하기 위한 기능입니다. 이를 통해 객체의 타입을 더 명확히 하고, 타입 검사를 통해 오류를 줄일 수 있습니다.
Interface 구조 정의하기
interface Person {
name: string;
age: number;
}
let user: Person = { name: "John", age: 30 };
위 예제는 Person
이라는 인터페이스를 정의하고 그것의 구조를 따르는 객체를 생성한 예시입니다. 이는 객체가 name
과 age
라는 두 가지 속성을 포함하도록 요구합니다.
Interface의 확장
Interface는 확장이 가능하여 더 큰 구조를 설계하는 데 유용합니다.
interface Employee extends Person {
department: string;
}
let staff: Employee = { name: "John", age: 30, department: "HR" };
Type Aliases
Type Alias는 타입스크립트에서 특정 타입에 별칭을 제공하는 방법입니다.
Type Alias 기본 사용법
type Point = {
x: number;
y: number;
};
let location: Point = { x: 10, y: 20 };
여기에서 Point
라는 type alias를 정의했고, 이는 객체의 타입을 간단히 표현하는 방법입니다.
Type Alias의 유용성
Type Alias는 복잡한 타입을 더 간단하게 할 수 있으며, 함수 타입이나 유니온 타입을 사용하여 보다 강력한 타입 시스템을 구축할 수 있습니다.
type Input = string | number;
function printInput(value: Input) {
console.log(value);
}
printInput("Hello"); // 출력: Hello
printInput(42); // 출력: 42
Interface vs Type Alias
타입스크립트에서 Interface와 Type Alias가 비슷한 점도 있지만, 다음과 같은 차이가 있습니다:
확장성: Interface는 확장 가능한 반면 Type Alias는 기본적으로 확장이 어렵습니다.
선택: Interface는 객체 구조를 정의할 때 더 자주 사용되며, Type Alias는 다른 타입 형태를 정의하는데 적합합니다.
마무리
Interface와 Type Alias는 타입스크립트에서 각각의 강점을 가지고 다양한 방식으로 활용될 수 있습니다. 이 둘을 이해하고 적절히 사용하는 것은 보다 안전하고 유지 보수 가능한 애플리케이션을 개발하는 데 도움이 됩니다.
참고 자료


