타입을 정의하는데에는 type
과 interface
두가지 방법이 있다.
type userInfo = {
name: string;
age: number;
};
상속받을 때: &
연산자 표기
type Developer = userInfo & {
skill: string[];
}
type barista = Person['job'];
interface userInfo {
name: string;
age: number;
}
function getInfo (user: userInfo) {
console.log(user.name);
}
const user1 = {
name: "kimboyoon",
age: 26
};
getInfo(user1); // "kimboyoon"
interface userInfo {
name: string;
}
interface userInfo {
age: number;
}
interface userInfo {
language: string;
}
const user1: userInfo = {
name: "kimboyoon",
age: 26,
language: "korean",
}
이를 선언병합 (Declaration Merging) 이라고 한다. (두개 이상의 개별적인 선언을 하나의 정의로 병합)
interface Person {
name: string;
age: number;
}
interface Developer extends Person {
language: string;
}
const captain: Developer = {
name: "캡틴",
age: 26
language: "korean"
}
옵셔널
속성이라고 하며, ?
를 이용한다.
interface userInfo {
name: string;
age?: number;
}
const user1 = {
name: "kimboyoon"
} // age 없어도 가능