Programming

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

개발자 염상진 2022. 10. 13. 17:56

 

인터페이스(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