interface와 type은 TypeScript에서 타입을 정의하는 두 가지 방법입니다. 둘 다 객체, 함수, 클래스 등을 포함한 모든 타입을 정의할 수 있습니다. 그러나 두 방법은 몇 가지 차이점이 있습니다.
- interface는 주로 객체의 구조를 정의할 때 사용되고, type은 주로 타입(alias)을 정의할 때 사용됩니다.
- interface는 확장(extends)이 가능하지만, type은 불가능합니다.
- interface는 선언 합침(declaration merging)이 가능합니다. 즉, 같은 이름의 인터페이스를 여러 번 선언할 수 있고, TypeScript는 이를 자동으로 합쳐줍니다. type은 합칠 수 없습니다.
- interface는 구조가 비슷한 다른 인터페이스와 함께 사용될 때 유용합니다. type은 타입을 복잡하게 조합해야 할 때 유용합니다.
아래는 interface와 type의 예시입니다.
// interface를 사용한 예시
interface Person {
name: string;
age: number;
}
const person: Person = { name: 'John', age: 30 };
// type을 사용한 예시
type Point = [number, number];
const point: Point = [10, 20];
위 예시에서 Person은 객체의 구조를 정의하기 위해 interface를 사용하였고, Point는 타입을 정의하기 위해 type을 사용하였습니다.
'Front-end > TypeScript' 카테고리의 다른 글
TS) React ~ event type 찾는 방법 ... 예시 (0) | 2023.03.07 |
---|