νμ μ€ν¬λ¦½νΈ(Typescript)μμ μΈν°νμ΄μ€(interface)λ κ°μ²΄μ νμ μ μ μνλ λ°©λ² μ€ νλμ λλ€. μΈν°νμ΄μ€λ₯Ό μ¬μ©νλ©΄ κ°μ²΄κ° νΉμ ꡬ쑰λ₯Ό κ°μ§κ³ μμμ λͺ μν μ μμΌλ©°, μ΄λ₯Ό ν΅ν΄ μ½λμ μμ μ±μ λμ΄κ³ μλ¬λ₯Ό μ€μΌ μ μμ΅λλ€. μΈν°νμ΄μ€λ ν΄λμ€, ν¨μ, λ°°μ΄ λ± λ€μν κ³³μμ μ¬μ©ν μ μμΌλ©°, μ½λμ κ°λ μ±κ³Ό μ¬μ¬μ©μ±μ λμ΄λ λ° λμμ΄ λ©λλ€.
μΈν°νμ΄μ€ μ μ λ°©λ²
μΈν°νμ΄μ€λ interface ν€μλλ₯Ό μ¬μ©νμ¬ μ μν©λλ€. κ·Έλ¦¬κ³ κ·Έ μμ ν΄λΉ κ°μ²΄κ° κ°μ ΈμΌ ν μμ±κ³Ό κ·Έ νμ μ λͺ μν©λλ€.
typescript
interface Person {
name: string;
age: number;
}
μ μμμμ Person μΈν°νμ΄μ€λ nameκ³Ό age λ κ°μ§ μμ±μ κ°μ§κ³ μμΌλ©°, κ°κ° stringκ³Ό number νμ μΌλ‘ μ§μ λμ΄ μμ΅λλ€.
μΈν°νμ΄μ€ μ¬μ© λ°©λ²
μΈν°νμ΄μ€λ μ£Όλ‘ λ³μμ νμ μΌλ‘ μ¬μ©λκ±°λ, ν¨μμ νλΌλ―Έν° νμ , λ°ν νμ μΌλ‘ μ¬μ©λ©λλ€.
typescript
function greet(person: Person) {
console.log("Hello, " + person.name);
}
const me: Person = { name: "John", age: 30 };
greet(me);
μ¬κΈ°μ greet ν¨μλ Person μΈν°νμ΄μ€ νμ μ νλΌλ―Έν°λ₯Ό λ°μ΅λλ€. λ°λΌμ greet ν¨μμ μ λ¬λλ μΈμλ λ°λμ Person μΈν°νμ΄μ€κ° μꡬνλ nameκ³Ό age μμ±μ κ°μ ΈμΌ ν©λλ€.
μΈν°νμ΄μ€ νμ₯νκΈ°
μΈν°νμ΄μ€λ extends ν€μλλ₯Ό μ¬μ©ν΄ λ€λ₯Έ μΈν°νμ΄μ€λ₯Ό νμ₯ν μ μμ΅λλ€. μ΄λ₯Ό ν΅ν΄ κΈ°μ‘΄ μΈν°νμ΄μ€λ₯Ό μμ νμ§ μκ³ μλ‘μ΄ μμ±μ μΆκ°ν μ μμ΅λλ€.
typescript
interface Employee extends Person {
employeeId: number;
}
const employee: Employee = {
name: "Jane",
age: 28,
employeeId: 1234
};
μ μμμμ Employee μΈν°νμ΄μ€λ Person μΈν°νμ΄μ€λ₯Ό νμ₯νμ¬ employeeId μμ±μ μΆκ°νκ³ μμ΅λλ€. λ°λΌμ Employee νμ μ κ°μ²΄λ Personμ λͺ¨λ μμ±μ ν¬ν¨νλ©° μΆκ°λ‘ employeeIdλ κ°μ ΈμΌ ν©λλ€.
νμ μ€ν¬λ¦½νΈμ μΈν°νμ΄μ€λ₯Ό μ¬μ©ν¨μΌλ‘μ¨, λ³΄λ€ λͺ ννκ³ κ΅¬μ‘°νλ μ½λλ₯Ό μμ±ν μ μμΌλ©°, κ°λ° κ³Όμ μμ λ°μν μ μλ νμ κ΄λ ¨ μλ¬λ₯Ό μ¬μ μ μλ°©ν μ μμ΅λλ€.