interface & type 차이

 

타입스크립트에서 인터페이스는 object의 형태를 알려주기 위한 목적으로 주로 사용된다.

type의 경우 여러가지 type을 합쳐서 object로 표현하기에는 적절하지 않기 때문이다.

즉, type이 더 넓은 범위로 유연하게 사용가능하지만, object를 표현하는 데에는 interface가 특화되어 있다!

또 type의 경우 실제 타입을 명세할 수도 있지만 아래처럼 값을 제한할 수도 있다.

 

 

위에서 말한것과 같이 인터페이스는 object를 표현하는데 특화되어 있어서

extends로 상속받아서 object를 쉽게 합칠수도 있고

동일한 인터페이스 명을 사용해서 object를 명시하면 자동으로 합칠수도 있다.

 

interface & abstract(추상클래스) 차이

 

기존에 배웠던 추상클래스의 경우는 js로 컴파일할 경우 class로 변환되어 버린다.

따라서 필요없는 코드들이 그대로 남게되는데,

이때 이 추상클래스를 대체할 수 있는 역할을 하는 것이 인터페이스다.

인터페이스는 js에는 없는 개념이기 때문에 컴파일할 경우 코드로 남지않고 사라진다.

또한 여러개의 인터페이스를 상속해서 사용할 수 있다.

 

인터페이스는 클래스에서 사용하는 것 뿐만 아니라

메서드에서도 parameter의 타입이나 return 타입으로도 사용할 수 있다.

 

 

+ Recent posts