[TS 공부 with 노마드 코더] #4.3 Interfaces part Two

SOLEE_DEV·2022년 7월 24일
0

Typescript

목록 보기
9/10
post-custom-banner

인터페이스

  • 인터페이스는 JS코드로 변환 될 때 추상 클래스를 추가로 사용하지 않음
  • JS코드로 컴파일 되지 않음
  • 인터페이스에서는 상속받으면 constructor를 다시 작성해줘야 함
  • 하나 이상의 인터페이스를 상속할 수 있음
interface User {
    firstName: string,
    lastName: string

    sayHi(name: string): string
    fullname(): string
}
// 인터페이스는 JS코드로 변환 될 때 추상 클래스를 추가로 사용하지 않음
// JS코드로 컴파일 되지 않음
// 인터페이스에서는 상속받으면 constructor를 다시 작성해줘야 함
// 하나 이상의 인터페이스를 상속할 수 있음

interface Human {
    health: number
}

class Player implements User, Human {
    constructor(
        // 인터페이스를 상속받을 때 property를 private로 만들지 못함
        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 {
    // arg에 인터페이스 타입을 씀으로써 obj의
    // 모양을 지정해 줄 수도 있음

    // 인터페이스를 return 하려면 인스턴스를 새로 생성할 필요 x
    return {
        firstName: "sol",
        lastName: "lee",
        fullname: () => "xx",
        sayHi: (name) => name
    }
}

makeUser({
    firstName: "sol",
    lastName: "lee",
    fullname: () => "xx",
    sayHi: (name) => name
})
profile
Front-End Developer
post-custom-banner

0개의 댓글