404 page not found : 기록장

[Typescript] type vs interface 차이 본문

TYPESCRIPT

[Typescript] type vs interface 차이

Hannah_J 2023. 3. 3. 18:56

Type과 Interface는 TypeScript에서 둘 다 타입 선언을 할 수 있는 구문이다. 하지만 두 구문은 목적과 의미가 조금씩 다르다.

Type Alias

Type은 타입 별칭이라고도 부르며, 특정 타입에 이름을 붙여줄 수 있다. 이를 통해 타입을 더 직관적으로 표현할 수 있으며, 코드 가독성을 높일 수 있다. 예를 들어, 다음과 같이 사용할 수 있다.

type Person = {
  name: string;
  age: number;
}

이렇게 정의된 Person 타입은, 이후에 다른 타입처럼 사용할 수 있다.

const person: Person = {
  name: 'John',
  age: 30,
}

Interface

Interface는 인터페이스로써, 객체의 구조를 정의한다. 즉, 객체가 가져야 할 속성과 메소드를 정의해준다. 예를 들어, 다음과 같이 사용할 수 있다.

interface Person {
  name: string;
  age: number;
}

Type과 마찬가지로, 이렇게 정의된 Person 인터페이스는 이후에 다른 인터페이스나 타입처럼 사용할 수 있다.

function getPersonInfo(person: Person) {
  return `Name: ${person.name}, Age: ${person.age}`;
}

차이점

Type과 Interface는 모두 타입을 선언할 수 있는 구문이지만, 목적과 사용 방법에서 차이가 있다.

  • Type은 타입 별칭으로, 특정 타입에 이름을 붙여줄 때 사용한다.
  • Interface는 객체의 구조를 정의할 때 사용한다.
  • Type은 Union Type이나 Intersection Type과 같은 고급 타입을 지원한다.
  • Interface는 extends를 이용하여 다른 인터페이스를 상속받을 수 있다.

따라서, Type과 Interface 중 어느 것을 사용할 지는 상황과 목적에 따라 결정해야 한다.

'TYPESCRIPT' 카테고리의 다른 글

[Typescript] Any와 Unknown  (0) 2023.03.03
[Typescript] Generic  (0) 2023.03.03
[Typescript] Union Type, Intersection Type  (0) 2023.03.03
[Typescript] Typescript의 기본 Type  (0) 2023.03.03
[Typescript] Typescript를 사용하는 이유  (0) 2023.03.02