[Typescript] 인터페이스

rondido·2023년 2월 22일
0

Typescript

목록 보기
3/6
post-thumbnail

인터페이스

  • Javascript에서는 존재하지 않는다.
  • 객체의 타입을 정의하고 생김새를 가지도록 할 수 있다.
  • TypeScript에서의 클래스 기능은 C#에서 유래된 것이 많다.
  • 일부 기능은 TS에서만 존재하는 고유 문법으로 컴파일 후에 사라진다.
  • extends 가 아닌 impolements 키워드로 구현
interface Person{
    name:string,
    age:number
}
//implements 대체
const park:Person = {
    name:'park',
    age:99
}

implements

interface Animal{
    name:string,
    run():void
}

interface People{
    sayName():string,   
}

class AnyClass {

}

//설계
class Park extends AnyClass implements Animal,People{
    constructor(public name:string,){
      super();
    }
    run(){
      console.log(this.name);
    }
    sayName() {
      return `사람의 이름은 ${this.name}`
    }
}

//내부적인 오타나 다른 문제가 없지만 interface에서 구현한 설계에 맞지 않기 때문에 에러 발생
// class Park implements People{
//     constructor(public name2:string,){}
//   run(){
//     console.log(this.name2);
//   }
// }

extends

interface We{
    name:string,
    run():string
}

// 충돌해선 안된다...
interface Me extends  We{
    //name :number,
    sayName():string
}

const kim:Me = {
    name:'park',
    run(){
        return'string'
    },
    sayName() {
    return 'string2'        
    },
}
profile
개발 옆차기

0개의 댓글