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 공식 문서 - 인터페이스