λλΆλΆμ μμ μ κ²½μ° μ΄ λμ μν μ λμΌνμ§λ§ ν΅μ¬μ μΈ μ°¨μ΄κ° μλ€.
μΈν°νμ΄μ€λ μ€μ§ κ°μ²΄ ννλ§ λ¬μ¬ν μ μλ€. νμ
λ³μΉμ λͺ¨λ νμ
μ λ¬μ¬ ν μ μλ€.
μ¦, λͺ¨λ μ’
λ₯μ νμ
λ³μΉμ μΈν°νμ΄μ€λ‘ λ체ν μλ μμΌλ―λ‘
κ°μ²΄μ ννλ₯Ό λ¬μ¬νλ κ²½μ°κ° μλλΌλ©΄ νμ
λ³μΉμ μ¬μ©ν΄μΌλ§ νλ€.
μΈν°νμ΄μ€λ μ΄λ―Έ μμ±λμμ΄λ μΆκ°ν μ μλ€.
μΈν°νμ΄μ€κ° κ°λ³ μ¬μ© μ¬λ‘μ μ μ©λ μ μκ³ , μ 체 μΈν°νμ΄μ€λ₯Ό λ€μ μμ±ν΄μΌ ν νμκ° μλ€.
μΈν°νμ΄μ€λ μμμ΄ κ°λ₯νλ€.
(κ°μμ μ € μ€μν μμ μ΄λΌ μ¬λ €λμλ€.)
νμ λ³μΉκ³Ό μΈν°νμ΄μ€λ μ μ¬νλ€.
μ€μ§ κ°μ²΄μ ννλ₯Ό λ¬μ¬νλ λ°μ μ¬μ©λλ€.
interface Point {
x: number,
y: number
}
const pt: Point = {x: 123, y: 1234};
readonlyμΈ νλ‘νΌν°λ λ³κ²½ν μ μλ€.
interface Person{
readonly id : number;
first : string;
last : string;
nickname?; string;
}
let paul: Person = { id : 23 , first : "kwon" , last : "paul };
paul.id = 213 ; // error
interface Person{
readonly id : number;
first : string;
last : string;
nickname?; string;
sayHi: () => string; // stringμ 리ν΄νλ λ©μλ
//sayHi(): string; // stringμ 리ν΄νλ λ©μλ
say(hi:string): string;
}
let paul: Person = { id : 23 , first : "kwon" , last : "paul ,
sayHi: ()=>{
return "Hello";
},
say(hello:string){
return hello;
}
console.log(paul.say("nice to meet u"));
};
interface Dog { // 1. μ΄λ―Έ μμ±λμμ§λ§
name: string;
}
interface Dog { // 2. μΆκ°ν μ μλ€.
age: number;
}
interface info{
height: number,
weight: number
}
interface ServiceDog extends Dog{ // λ¨μΌ μμ
job: "drug"|"bomb"|"guide dog"
}
interface DogInfo extends Dog,info // λ€μ€ μμ
const chewy: ServiceDog = {
name : "Chewy",
age : 3,
job : "drug"
}