(타입스크립트) 인터페이스

이것은 TypeScript에서 객체 내부에 속성을 정의하는 방법입니다.

변수를 선언할 때마다 타입을 지정하는 것보다 인터페이스를 사용하는 것이 더 편리하고 재사용이 가능하다.

인터페이스란 무엇입니까?

그것은 서로에 의해 정의된 약속과 규칙을 의미합니다.

다음 범주에 대해 약속(규칙)을 정의할 수 있습니다.

– 개체 사양(속성, 속성 유형)

– 함수의 매개변수

– 함수명세(파라미터, 리턴타입 등)

– 배열 및 개체에 액세스하는 방법

– 수업

type Score="A" | 'B' | 'C' | 'F' ;

interface User{
    name : string;
    age : number;
    gender? : string;  //(1)
    readonly birthYear : number;  //(2)
    (grade:number) : Score;   //(3)
}

let user: User = {
    name: 'name',
    age: 25,
    birthYear : 1999,
    1 : 'A';
}

(1) 선택적 속성 ?

속성 이름에 ?를 추가하여 옵션으로 만들 수 있습니다.

성별 속성이 없는 사용자 개체를 매개변수로 전달해도 오류가 발생하지 않습니다.

(2) 읽기 전용 속성.

인터페이스를 사용하여 객체를 처음 생성할 때만 값이 부여되는 속성으로 이후에는 변경할 수 없습니다.

그 앞에 읽기 전용을 사용하십시오.

(3) 문자열 리터럴 타입 선언

위에서 선언한 Score의 값만 입력할 수 있습니다.

기능 정의

interface Add {
    (num1:number, num2:number) : number;
}
const add : Add = function(x, y){
    return x+y;
}

add(10,20)  => 30
add(10, '20') => err

함수는 인터페이스로도 정의됩니다.

(인수 매개변수 값): 반환 유형;

클래스 정의

//impliments
interface Car{
    color: string;
    wheels: number;
    start(): void;
}

class Bmw impliments Car{
   color;
   wheels = 4;
   constructor(c:string){
       this.color = c;
   }
   start(){
       console.log('gogo~ bmw');
   }
}

const bmw = new Bmw('blue');

console.log(bmw.start())   // 'gogo~ bmw'

implements 키워드를 사용하십시오. 생성자를 사용하여 입력을 받을 수 있습니다.

interface Benz extends Car{ // Car가 가지고 있는 속성 그대로 가지고 있다.

door: number; stop(): void; }

extends를 사용하여 기존 Car 인터페이스에서 확장할 수 있습니다.

그것은 자동차가 가진 속성을 가지고 있습니다.

문과 정류장을 추가합니다.