interface
Object
의 타입은 Type Aliases(type
키워드) 생성에 더해
interface
키워드로 타입변수 생성 가능.
type Square = { color: string; width: number };
interface Square {
color: string;
width: number;
}
const 네모: Square = { color: 'red', width: 100 };
interface
vs. type
interfaces
는 extends
가능.
type
(intersection; 교차타입)과는 다르게 실제로 복사의 기능을 가짐.
interface Student {
name: string;
}
interface Teacher extends Student {
age: number;
}
const 학생: Student = { name: 'kim' };
const 선생: Teacher = { name: 'kim', age: 20 };
interfaces
는 중복선언이 가능.
- 중복선언을 하면 내용이 추가됨.(합집합)
- 단, 중복속성은 불가.
interface Student {
name: string;
}
interface Student {
score: number;
}
- 즉, 커스터마이징이 쉬움. (
type
보다 덜 엄격)