interface 이름{변수이름:형태; 변수이름?:형태}
?의 경우 있을지 없을지 확실하지 않을 때 넣어두면 객체에 쓸 때 없어도 무관해진다. 단, 만들어놓은 인터페이스의 객체의 내용들 외에는 추가를 하지 못한다
함수에서 또한 인터페이스로 작성해서 쓸 수 있다
interface 이름=(변수이름:형태):형태=>{내용}
let 다른이름:인터페이스이름;
다른이름=function(변수이름){내용}
주의할 부분은 다른이름으로 쓴 함수 또한 interface로 지정한 방식이 쓰이기 때문에 return 형태도 신경써야 한다
인터페이스 확장
interface 새로운이름 extends 기존인터페이스{확장할변수명:변수종류}
이미 만들어 놓은 여러개의 인터페이스도 나열해서 추가가 가능하다
interface 새로운이름 extends 기존인터페이스1,기존인터페이스2,...{확장할변수명:변수종류}
대신 이 때 주의점은 만약 새롭게 짠 인터페이스로 값을 다 넣은 뒤 갑자기 추가해야 할 것이 있어서 위와 같이 붙이게 된다면 새로운인터페이스를 쓴 곳 모두 수정을 해야 한다.
확장된 인터페이스를 쓰는 방법은 2가지가 있다
let 변수이름:인터페이스이름={인터페이스로지정한변수이름:값,여러개는 ,로 구분}
let 변수이름={} as 인터페이스이름
변수이름.인터페이스로지정한변수이름=값;
딱히 정해진 답은 없다