인터페이스
인터페이스
/**
* 인터페이스
*/
interface Person {
readonly name: string;
age?: number;
sayHi(): void;
sayHi(a: number, b: number): void;
}
const person: Person = {
name: "Rachel",
sayHi: function () {
console.log("Hi");
},
};
person.sayHi();
person.sayHi(1, 2);
인터페이스 확장하기
/**
* 인터페이스의 확장(상속)
*/
interface Animal {
name: string;
color: string;
}
interface Dog extends Animal {
isBark: boolean;
}
const dog: Dog = {
name: "",
color: "",
isBark: true,
};
interface Cat extends Animal {
isScratch: boolean;
}
interface Chicken extends Animal {
isFly: boolean;
}
interface DogCat extends Dog, Cat {
isCute: boolean;
}
const dogCat: DogCat = {
name: "",
color: "",
isBark: true,
isScratch: true,
isCute: true,
};
인터페이스 합치기
/**
* 선언 합침
*/
interface Person {
name: string;
}
interface Person {
age: number;
}
const person: Person = {
name: "",
age: 1,
};
/**
* 모듈 보강
*/
interface Lib {
a: number;
b: number;
}
interface Lib {
c: string;
}
const lib: Lib = {
a: 1,
b: 2,
c: "hello",
};
[참고]
한 입 크기로 잘라먹는 타입스크립트
- Section 5. 인터페이스 강의를 듣고 정리한 내용입니다.