추상클래스의 인스턴스는 만들 수 없다.
상속받는 클래스가 어떻게 동작해야할지 알러주기 위해 추상클래스를 사용한다.
추상클래스는 클래스에게 어떻게 구현할지를 알려주는 것이 아니라 무엇을 구현해야 할지에 대해 알려준다.
그러나 자바스크립트에는 추상클래스의 개념이 없다.
우리는 왜 추상클래스를 만드는 걸까?
다른 클래스들이 표화된 속성과 메소들르 갖도록 해주는 블루 프린트를 만들기 위해 추상클래스를 사용한다.
인터페이스는 컴파일하면 js로 바뀌지 않고 사라진다.
인터페이스를 쓸 때 클래스가 특정 형태를 따르도록 어떻게 강제할까?
추상클래스 -> 인터페이스
인터페이스는 자바스크립트에서 존재하지 않아 코드가 보이지 않아 훨씬 간단해졌다.
인터페이스를 상속할 때는 속성을 private로 만들지 못한다. public이어야 한다.
인터페이스는 클래스의 모양을 알려준다. 그러나 private 속성을 사용하지 못하고 constructor를 상속받는 클래스에서 사용해야 한다.
하나 이상의 인터페이스를 동시에 상속할 수 있다. 인터페이스는 클래스는 아니지만 클래스의 모양을 특정할 수 있게 해주는 간단한 방법이다. (+ 오브젝트의 모양도 결정할 수 있다)
인터페이스를 타입으로 지정할 수도 있다. firstUser라는 인터페이스를 타입으로 쓰고 있는 형태이다.
위와 같은 방법은 argument에 인터페이스를 타입으로 설정하고 인터페이스를 리턴할수도 있다.
new User() 와 같은 형태는 필요없다.
인터페이스는 내가 원하는 메소드와 속성을 클래스가 가지도록 강제할 수 있다.
※ 상속
extends
class -> class
interface -> interface
inplements
interface -> class
type -> class
'Frontend > Typescript' 카테고리의 다른 글
노마드 코드 - 타입 스크립트로 블록체인 만들기 ([key:string] , interfaces - 타입과 인터페이스 비) (0) | 2023.10.18 |
---|---|
노마드 코드 - 타입 스크립트로 블록체인 만들기 (Classes) (0) | 2023.10.17 |
노마드 코드 - 타입 스크립트로 블록체인 만들기 (Polymorphism) (0) | 2023.10.16 |
노마드 코드 - 타입 스크립트로 블록체인 만들기 (Call Signatures, Overloading) (0) | 2023.10.16 |
노마드 코드 - 타입스크립트로 블록체인 만들기 overview of typescript (0) | 2023.10.14 |