본문 바로가기
Programming

Typescript 인터페이스 타입 차이점?

by 개발자 염상진 2022. 10. 13.

 

인터페이스(Interface) vs Type 차이점

 

타입스크립트 에서 인터페이스는 변수의 타입 강제와 하위 클래스에서 메소드 구현을 강제하는 2가지 용도로 사용됩니다. 타입 강제 부분에서 유사한 기능을 하는 Type이 있지만 인터페이스와 타입은 차이점이 존재합니다.

 

 

① 우선 인터페이스는 동일한 이름을 가지고 확장이 가능합니다. 코드를 보시면 Obj라는 동일한 이름의 인터페이스를 선언했지만 기능이 확장됩니다.

interface Obj {
    name:string
    age:number
}

interface Obj{
    address:string
}

const o:Obj = {
    name:'about-tech',
    age:100,
    address:'Korea'
}

console.log(o);

 

② 인터페이스는 객체에만 적용이 가능합니다. 아래처럼 선언은 불가능합니다.

interface Obj:string;

 

③ 인터페이스 확장은 extends 키워드를 사용합니다. type은 & 연산자를 사용해서 확장 가능합니다.

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

interface Obj2 extends Obj1 {
  address: string;
}

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

type Obj4 = Obj3 & {
  address: string;
};

 

④ Interface는 Computed Value를 사용할 수 없습니다.

type school = "University" | "Highschool";

type Students = {
  // OK
  [item in school]: number;
};

interface IStudents {
  // Compile Error
  [item in school]: number;
}

 

⑤ 인터페이스 합성의 경우 Cache가 지원되지만 Type은 그렇지 않습니다. 즉, 타입을 강제하는 경우 Interface 사용이 권장되고 있습니다.

 

 

🚀️ 도움이 되셨다면 구독좋아요 부탁드립니다 👍️

 

 

 

객체 지향 프로그래밍이란(OPP)

객체 지향 프로그래밍은 객체를 최소단위로 하여 객체간 통신을 통해 프로그램을 구현하는 방법론을 의미합니다. 소프트웨어를 개발하는데 사이즈가 커지고, 비용이 증가하면서 소프트웨어를

about-tech.tistory.com

 

 

Transpile VS Compile 차이점?

Babel, Typescript는 Javascript를 컴파일하는 도구입니다. 웹 브라우저가 이해할 수 있는 이전 버전의 Javascript로 트랜스컴파일러로 Babel을 사용합니다. 또한 Typescript는 정적 타입 기능을 추가해 Javascrip.

about-tech.tistory.com

 

 

Nginx 란? 웹 서버 개념 이해하기

웹 서버란? 팀 버너스 리가 구축한 월드 와이드 웹(WWW)은 인터넷 네트워크에서 동작하는 프로토콜입니다. 인터넷에서는 클라이언트가 웹 서버에게 요청을 보내고 연결은 HTTP 프로토콜로 연결이

about-tech.tistory.com

 

댓글