인터페이스
- 인터페이스는 JS코드로 변환 될 때 추상 클래스를 추가로 사용하지 않음
- JS코드로 컴파일 되지 않음
- 인터페이스에서는 상속받으면 constructor를 다시 작성해줘야 함
- 하나 이상의 인터페이스를 상속할 수 있음
interface User {
firstName: string,
lastName: string
sayHi(name: string): string
fullname(): string
}
interface Human {
health: number
}
class Player implements User, Human {
constructor(
public firstName: string,
public lastName: string,
public health: number
){}
sayHi(name: string): string {
throw new Error("Method not implemented.")
}
fullname(): string {
throw new Error("Method not implemented.")
}
}
function makeUser(user: User): User {
return {
firstName: "sol",
lastName: "lee",
fullname: () => "xx",
sayHi: (name) => name
}
}
makeUser({
firstName: "sol",
lastName: "lee",
fullname: () => "xx",
sayHi: (name) => name
})