ν μ ν¬κΈ°λ‘ μλΌλ¨Ήλ νμ μ€ν¬λ¦½νΈ(TypeScript) κ°μ | μ΄μ ν Winterlood - μΈνλ°
μ΄μ ν Winterlood | , νλ‘ νΈμλμ νΌν μ μλ λμΈ νμ μ€ν¬λ¦½νΈ,μ΄μ λ μ λλ‘ μ 볡ν λκ° μμ΅λλ€! π [μ¬μ§]μΈνμ½ 2023 'νμ μ€ν¬λ¦½νΈλ μ κ·Έλ΄κΉ?' λ°νμμ κ°μμ λλ€. π§ λ°°μ
www.inflearn.com
π μΈν°νμ΄μ€
// β
μΈν°νμ΄μ€ (interface)
// → κ°μ²΄μ ꡬ쑰(νλ‘νΌν°μ λ©μλ)λ₯Ό μ μνλ λ¬Έλ²
// → μμ, ν©μΉ¨ λ±μ νΉμν κΈ°λ₯μ μ 곡
interface Person {
readonly name: string;
age?: number;
// λ©μλ μ μ (νΈμΆ μκ·Έλμ²λ‘ μ μνλ©΄ μ€λ²λ‘λ© κ°λ₯ / sayHi: () => void; μ κ°μ΄ ν¨μ νμ
ννμμ μ€λ²λ‘λ© λΆκ°λ₯)
sayHi(): void;
sayHi(name1: string, name2: string): void;
}
// μΈν°νμ΄μ€λ₯Ό μ¬μ©ν κ°μ²΄ μ μ
const person: Person = {
name: "κ°μ°μ",
sayHi: function() {
console.log("Hi");
}
};
person.sayHi();
person.sayHi("κ°μ°μ", "κ°λ§λ¦¬");
π μΈν°νμ΄μ€ νμ₯νκΈ°
// β
μΈν°νμ΄μ€ νμ₯ (interface extends)
// → κΈ°μ‘΄ μΈν°νμ΄μ€λ₯Ό μμ(νμ₯)ν΄μ μλ‘μ΄ μμ±μ μΆκ°ν μ μμ
interface Animal {
name: string;
age: number;
};
interface Dog extends Animal {
isBark: boolean;
};
interface Cat extends Animal {
isScratch: boolean;
};
interface Chicken extends Animal {
isFly: boolean;
};
// β
μΈν°νμ΄μ€ λ€μ€ νμ₯
// → μ¬λ¬ κ°μ μΈν°νμ΄μ€λ₯Ό νκΊΌλ²μ νμ₯ κ°λ₯
interface DogCat extends Dog, Cat {};
π μΈν°νμ΄μ€ ν©μΉκΈ°
// β
μΈν°νμ΄μ€ μ μΈ ν©μΉκΈ° (Declaration Merging)
// → λμΌν μ΄λ¦μ μΈν°νμ΄μ€κ° μ¬λ¬ λ² μ μΈλλ©΄, νμ
μ€ν¬λ¦½νΈκ° μ΄λ₯Ό μλμΌλ‘ νλλ‘ ν©μ³μ€
// → μ£Όλ‘ λΌμ΄λΈλ¬λ¦¬ 보κ°(λͺ¨λ 보κ°) λ±μμ λ§μ΄ μ¬μ©λ¨
interface Person {
name: string;
}
interface Person {
age: number;
}
const person: Person = {
name: "κ°μ°μ",
age: 24
};
β¬οΈ λ€μ λ΄μ©μ μλ κΈμ μ°Έκ³
μΈνλ° κ°μ - ν μ ν¬κΈ°λ‘ μλΌλ¨Ήλ νμ μ€ν¬λ¦½νΈ (ν΄λμ€)
ν μ ν¬κΈ°λ‘ μλΌλ¨Ήλ νμ μ€ν¬λ¦½νΈ(TypeScript) κ°μ | μ΄μ ν Winterlood - μΈνλ°μ΄μ ν Winterlood | , νλ‘ νΈμλμ νΌν μ μλ λμΈ νμ μ€ν¬λ¦½νΈ,μ΄μ λ μ λλ‘ μ 볡ν λκ° μμ΅λλ€! π [μ¬μ§]
isliife2.tistory.com