Javascript
TypeScript에서 인터페이스와 타입의 사용방법과 차이점
randev
2023. 3. 16. 01:09
인터페이스(Interfaces)
인터페이스는 TypeScript에서 객체의 타입을 정의하는 방법 중 하나입니다. 인터페이스는 객체가 가져야 할 프로퍼티, 메소드 등의 구조를 정의합니다.
interface Person {
name: string;
age: number;
greet: () => void;
}
위의 예제에서 Person
인터페이스는 name
과 age
라는 두 개의 프로퍼티와 greet
라는 메소드를 가져야 함을 정의합니다. 이제 Person
인터페이스를 사용하여 해당 구조를 가진 객체를 만들 수 있습니다.
const person: Person = {
name: 'John',
age: 30,
greet: () => console.log('Hello!')
};
인터페이스는 상속이 가능하며, 클래스에서도 사용될 수 있습니다.
타입(Types)
타입은 TypeScript에서 객체, 변수, 함수 등의 타입을 정의하는 방법 중 하나입니다. 타입은 인터페이스와 유사한 목적을 가지고 있지만 더 다양한 형태의 타입을 정의할 수 있습니다.
type Person = {
name: string;
age: number;
greet: () => void;
};
위의 예제에서 Person
타입은 name
과 age
라는 두 개의 프로퍼티와 greet
라는 메소드를 가져야 함을 정의합니다. 인터페이스와 마찬가지로 해당 구조를 가진 객체를 만들 수 있습니다.
const person: Person = {
name: 'John',
age: 30,
greet: () => console.log('Hello!')
};
타입은 인터페이스와 다르게 유니온 타입, 인터섹션 타입, 리터럴 타입 등 다양한 형태로 정의될 수 있습니다.
인터페이스와 타입의 차이점
- 인터페이스는 상속이 가능하지만, 타입은 불가능합니다.
- 인터페이스는 주로 객체의 구조를 정의하는 데 사용되지만, 타입은 다양한 형태의 타입을 정의하는 데 사용됩니다.
- 인터페이스는 주로 외부 라이브러리나 모듈에서 가져오는 타입을 정의하는 데 사용되지만, 타입은 주로 내부 코드에서 사용됩니다.