μΈλ±μ€ μκ·Έλμ²λ κ°μ²΄κ° νΉμ νμμ μμ±μ λμ μΌλ‘ κ°μ§ μ μλλ‘ μ μνλ λ°©λ²μ΄λ€.
{[key: T]: U} νμμΌλ‘ μ¬λ¬ keyλ₯Ό κ°μ§ μ μμΌλ©°, keyμ λ§€νλλ valueλ₯Ό μ°Έμ‘°ν λ μ¬μ©νλ€.
type UserType = {
[key: string]: string;
};
const user: userType = {
name: 'μ¬μ©μ1',
adress: 'μμΈνΉλ³μμ΄μ©κ΅¬'
}
console.log(object['name']) // μ¬μ©μ1
// ꡬ체μ μΈ ν€ κ°μ μκ³ μλ κ²½μ° μΌλΆλ§ μΈλ±μ€ μκ·Έλμ²λ‘ λ§λ€μλ μλ€.
interface MixedDictionary {
[key: string]: number | string; // μΈλ±μ€ μκ·Έλμ²
fixedProperty: boolean; // λͺ
μμ μΌλ‘ μ μλ μμ±
}
string
Β νΉμΒ number
Β μ΄μ¬μΌλ§ νλ€.μΈλ±μ€ μκ·Έλμ²λ λμ μμ±μ μν΄ "λͺ¨λ " λ¬Έμμ΄, μ«μ, λλ μ¬λ³Ό ν€μ λν΄ νμ μ μ§μ νλ μ©λμ΄λ€.
λ°λΌμ νΉμ λ¬Έμμ΄ λ¦¬ν°λ΄λ‘ keyλ₯Ό μ ννκ³ μΆλ€λ©΄ λ§€νλ νμ μ΄λ λͺ μμ μμ± μ μΈ, Recordλ₯Ό ν΅ν΄ ꡬνν μ μλ€.
type SpecificKeys = 'WEB' | 'SERVER';
// λλ€ λμΌνκ² λμνλ€.
type SpecificDictionary = {
[key in SpecificKeys]: number;
};
type SpecificDictionary = Record<SpecificKeys, number>;
Object.keys()
λ κ°μ²΄μ μκΈ° μμ± ν€λ€μ λ¬Έμμ΄ λ°°μ΄λ‘ λ°ννλ μλ°μ€ν¬λ¦½νΈ λ΄μ₯ν¨μμ΄λ€.
β μ΄ λ°°μ΄μ μμλ κ°μ²΄μ ν€ μ΄λ¦μ λ¬Έμμ΄λ‘ λ€λ£¨κΈ° λλ¬Έμ string[]
νμ
μ λ°ννλ€.
νμ μ€ν¬λ¦½νΈμ ν΅μ¬ μμΉμΌλ‘ βνμ 체ν¬λ₯Ό ν λ κ·Έ κ°μ΄ κ°μ§ ννμ μ§μ€νλ€.β λΌλ λΆλΆμ΄ μλλ° μ΄ λΆλΆμ΄ μλ°μ€ν¬λ¦½νΈμ λ νμ΄νκ³Ό κ΄λ ¨μ΄ μλ€.
λ νμ΄ν κ°μ²΄μ νμ μ΄ ν΄λμ€ μμ, μΈν°νμ΄μ€ ꡬν λ±μΌλ‘ κ²°μ λλ κ²μ΄ μλ μ΄λ€ κ°μ²΄κ° νμν λ³μμ λ©μλλ§ μ§λκ³ μλ€λ©΄ κ·Έλ₯ ν΄λΉ νμ μ μνλλ‘ μΈμ ν΄ μ£Όλ κ²μ μλ―Ένλ€.