TypeScript는 JavaScript에 정적 타이핑을 추가한 것으로, 객체 및 변수의 타입을 명시적으로 지정할 수 있습니다. 이를 통해 코드의 가독성을 높일 뿐만 아니라 잠재적인 버그를 사전에 방지할 수 있습니다.
인터페이스(Interfaces)는 TypeScript에서 객체의 구조를 정의하고, 해당 객체가 반드시 가지고 있어야 하는 속성과 메소드를 명시할 수 있는 강력한 도구입니다.
인터페이스란 무엇인가요?
인터페이스는 객체의 구조를 정의하기 위한 TypeScript의 기능으로, 다음과 같은 형식으로 선언할 수 있습니다.
interface Person {
name: string;
age: number;
greet: () => void;
}
위의 예제에서 Person이라는 인터페이스는 name이라는 문자열 타입의 속성, age라는 숫자 타입의 속성, 그리고 greet라는 함수 타입의 메소드를 가져야 한다고 정의하고 있습니다.
인터페이스를 사용하는 방법
인터페이스를 사용하여 객체를 선언하거나 클래스의 구조를 지정할 수 있습니다.
1. 객체에 인터페이스 적용
interface Person {
name: string;
age: number;
greet: () => void;
}
let person: Person = {
name: 'John',
age: 30,
greet: function() {
console.log('Hello!');
}
};
위의 예제에서 person 객체는 Person 인터페이스를 준수해야 하며, 해당 객체에서는 name, age, greet 속성 및 메소드를 가져야 합니다.
2. 클래스에 인터페이스 적용
interface Animal {
name: string;
sound: string;
makeSound: () => void;
}
class Dog implements Animal {
name: string;
sound: string;
constructor(name: string, sound: string) {
this.name = name;
this.sound = sound;
}
makeSound() {
console.log(this.sound);
}
}
위의 예제에서 Dog 클래스는 Animal 인터페이스를 구현하여야 합니다. 즉, name과 sound 속성을 가져야 하며, makeSound 메소드를 구현하여야 합니다.
결론
인터페이스를 사용하여 TypeScript에서 객체의 구조를 명확히 정의할 수 있으며, 이를 통해 코드의 가독성과 유지보수성을 향상시킬 수 있습니다. 객체 및 클래스의 구조를 명시적으로 작성함으로써 개발자들은 잠재적인 오류를 사전에 방지하고, 협업 시에도 객체의 형태와 의도를 명확히 전달할 수 있습니다.
이처럼 인터페이스는 TypeScript에서 객체 지향적인 프로그래밍을 지원하며, 안정적이고 확장 가능한 코드를 작성하는 데 유용한 도구로 활용됩니다.
참고 자료: TypeScript 공식 문서 - 인터페이스