

이와 달리 자바스크립트에서는 constructor에 직접 값을 대입하고 있따.
Call Signature로만 적을 수 있다. 추상메소드는 추상클래스를 상속받는 클래스에서 반드시 구현해야하는 메소드를 말한다.1. private
- private을 사용하면 내 클래스에서만 접근이 가능하다. 상속받은 클래스나 다른 곳에서 사용이 불가
2. public
- public은 private과는 달리 어디서든 자유롭게 접근이 가능하다.
3. protected
- protected는 자신의 클래스와 자신을 상속받은 클래스에서만 접근이 가능하다.
그렇기 때문에 추상클래스의 멤버들은 protected를 사용한다. private이면 상속받은 클래스에서 사용할 수 없기 때문이다.

property의 이름은 모르지만 타입은 알고있을 때 사용한다.
add메소드와 del메소드 만듦
type형태와 거의 비슷하지만 다른점이 존재한다.
type은 alias를 비롯해 객체의 형태를 지정할 수 있다. 하지만 interface는 오직 객체의 형태만 정할 수 있다.
interface는 상속이 가능하다. 그런데 type형태도 상속과 비슷하게 사용할 수 있다.

interface는 다중선언이 가능하다. 하지만 type은 불가능하다.
interface User{
name:string
}
interface User{
age:number
}
그래서 interface는 오직 오브젝트의 형태를 정할때만 사용한다는 것을 기억하자.

근데 위의 코드의 문제점은 JS에서는 추상클래스가 존재하지 않는다. 우리가 작성한 추상클래스는 JS에서 일반적인 클래스로 바뀐다. 왜냐면 JS에는 추상클래스가 존재하지 않기 때문이다.
하지만 저기서 추상클래스는 상속받을 클래스의 형태를 지정해주는 역할을 한다. 그렇다면 우리는 interface와 비슷하게 바라볼 수 있다.

interface를 사용하면 결정적으로 JS에서 코드가 가벼워진다. 이외에도 달라진점이 몇가지가 있는데
주의할점은 public밖에 사용할 수 없다.
추가적으로 interface를 반환하거나 매개변수로 받을 수 있다. 그럴땐 당연히 저 객체의 모양을 가지면 된다.