1. interface
- 타입 스크립트에 오브젝트의 형태를 알려주기 위한 키워드
type과의 차이점
1. 유니온/인터섹션 타입 사용불가
type A = {
name:string
}
type Person = A & {
age:number
}
const nick:Person = {
name:"park",
age:30
}
type team = "red"|"blue"|"yellow";
ℹ️interface의 extends를 이용하면 typ의 인터섹션 타입과 거의 동일한 기능을 사용할 수 있다.
interface A {
name:string
}
interface Person extends A{
age:number
}
const nick:Person = {
name:"park",
age:30
}
- interface가 조금더 선언 방식과 형태가 class와 가깝다
2. 클래스와 같이 사용 가능
interface Animal {
name: string;
makeSound(): void;
}
class Dog implements Animal {
name: string;
constructor(name: string) {
this.name = name;
}
makeSound(): void {
console.log("Woof! Woof!");
}
}
const myDog = new Dog("Buddy");
console.log(myDog.name);
myDog.makeSound();
3. 선언 병합 가능
인터페이스의 경우
interface Person {
name: string;
}
interface Person {
age: number;
}
const person: Person = {
name: "John",
age: 30
};
타입의 경우
type Person = {
name: string;
};
type Person = {
age: number;
};