[TypeScript] 인터페이스

youngseo·2022년 6월 10일
0

Type Script

목록 보기
8/10
post-thumbnail

인터페이스

1. Interface란?

  • JavaScript에서는 존재하지 않습니다.
  • 객체의 타입을 정의하고 생김새를 가지도록 할 수 있습니다
  • TypeScript에서의 클래스 기능은 C#에서 유래된 것이 많습니다
  • 일부 기능은 TS에서만 존재하는 고유 문법으로 컴파일 후에 사라집니다
  • extends가 아닌 implements 키워드로 구현합니다

🐥interface 와 implements

  • interface
    • 정의, 설계
  • implements
    • 구현
interface Person {
  name: string
  age: number
}

const jang: Person = {
  name: 'Jang',
  age: 99
}

2. implements

/**
 * interface implements
 * - interface의 설계를 구현한다.
 */
interface Animal {
  name: string
  run(): string
}

interface Person {
  sayName(): string
}

class AnyClass {
}
//다중구현도 가능합니다.
class Jang extends AnyClass implements Animal, Person {
  constructor(public name: string) {
    super()
  }

  run() {
    return this.name
  }

  sayName() {
    return `사람의 이름은 ${this.name}`
  }
}

3. extends

interface에서 extends를 활용할 수도 있습니다.

/**
 * interface extends
 */
interface Animal {
  name: string
  run(): string
}

interface Person extends Animal {
  sayName(): string
}

const jang: Person = {
  name: 'Jang',
  run() {
    return 'string'
  },
  sayName() {
    return 'string2'
  }
}

0개의 댓글