interface
는 다른 유형을 확장하여 새로운 것을 구축할 수 있음.
Typescript는 주로 기존 객체 유형을 결합하여 사용되는 교차 유형을 제공함.
즉 여러 타입을 모두 만족하는 하나의 타입을 이야기 한다.
interface Colorful {
color: string;
}
interface Circle {
radius: number;
}
type ColorfulCircle = Colorful & Circle;
// 이렇게 생성한 ColorfulCircle을 아래서 사용함.
function draw(circle: Colorful & Circle) {
console.log(`Color was ${circle.color}`);
console.log(`Radius was ${circle.radius}`);
}
// 성공
draw({ color: "blue", radius: 42 });
// error!
draw({ color: "red", raidus: 42 });
//결과적으로 ColorfulCircle 타입은 이렇게 정의된다.
{
color: string;
radius: number;
}