인터페이스

jeongwon yun·2023년 3월 3일
0

Typescript

목록 보기
6/25

인터페이스는 순수 타입스크립트 기능이다.

인터페이스는 클래스와 다르게 청사진으로 사용하지 않는다.

클래스는 인스턴스화할 수 있고 컴파일 되지만
인터페이스는 인스턴스화할 수 없고 컴파일되지 않는다.

인터페이스는 객체(또는 함수 타입)를 서술하지만
유니온 타입과 같은 임의 타입을 저장하거나 서술하지 않는다.

interface AddFn {
    (a: number, b: number): number;
}

let add: AddFn;

add = (n1: number, n2: number) => {
    return n1 + n2;
};

interface Named {
    readonly name?: string;
    outputName?: string;
}

interface Greetable extends Named {
    greet(phrase: string): void;
}

class Person implements Greetable, Named {
    name?: string;
    age = 30;
    constructor(n?: string) {
        if (n) {
            this.name = n;
        }
    }

    greet(phrase: string) {
        if (this.name) {
            console.log(phrase + ' ' + this.name);
        } else {
            console.log('Hi');
        }
    }
}

let user1: Greetable;

user1 = new Person();

user1.greet('Hi there - I am');

console.log(user1);

0개의 댓글