π νμ μΆλ‘ νΉμ§
let x = 3;
μμ κ°μ΄ x λ³μκ° λ°λ‘ νμ μ μ§μ νμ§ μλλΌλ μΌλ¨ xλ 3μ΄λΌλ μμμ΄κ° λ€μ΄μκΈ°μ number νμ μΌλ‘ κ°μ£Όλλ€. μ΄λ κ² λ³μλ₯Ό μ μΈνκ±°λ μ΄κΈ°ν ν λ νμ μ΄ μΆλ‘ λλ€. μ΄μΈμλ λ³μ, μμ±, μΈμμ κΈ°λ³Έκ°, ν¨μμ λ°νκ° λ±μ μ€μ ν λ νμ μΆλ‘ μ΄ μΌμ΄λλ€.
var a = 'abc';
function getB(b = 10) {
var c = 'hi';
return b + c;
}
λ³μ Cμ μμ±μ 'hi' λΌλ λ¬Έμμ΄μ΄ λ€μ΄μμ΄ νμ μ΄ μμμ string λ¬Έμμ΄λ‘ μλ μΆλ‘ λλ€.
κ·Έλ¦¬κ³ λ°νκ°μ b + c μΈ κ²½μ°
b: number, c:string
μΌλ‘ κ°μ£Όλμ΄ μΆλ ₯λλ κ°μ //10hi λ‘ μΆλ ₯λλ€. κ·Έλ¦¬κ³ getB νλΌλ―Έν°μ νμ μ μ μλμ§ μμ μ± bλ§ μ μκ° λ κ²½μ° μμμ anyλΌλ νμ μΌλ‘ μ μν΄μ€λ€.
π νμ μΆλ‘ κΈ°λ³Έ μμ 02
interface Dropdown<T> {
value: T;
title: string;
}
var shoppingItem: Dropdown<string> = {
value: 'abc',
title: 'hello',
}
μΈν°νμ΄μ€μ μ λλ¦μ μ΄μ©ν νμ μΆλ‘ λ°©μμ΄λ€. Tμ λ°λΌμ valueκ°μ΄ λ³κ²½ λ μλ μλ€. titleμ΄λ μμ±κ°μ stringμΌλ‘ κ³ μ μμΌ λμμΌλ κ·Έ νμ κ³ λλ‘ Fix λ κ². κ·Έλ¦¬κ³ λ€λ₯Έ ν¨μλ₯Ό μ μΈνλ©΄μ λ³μλ₯Ό μ΄κΈ°ν νλ©΄ νμ λ μ΄κΈ°ν λλ€. μ μ½λμ²λΌ valueκ°μ 'abc'λ₯Ό λ£μΌλ©΄ μλμΌλ‘ λ¬Έμμ΄λ‘ λ³λλκ³ μ«μλ₯Ό λ£μΌλ©΄ μλμΌλ‘ number νμ μΌλ‘ λ³λλλ€.
π νμ μΆλ‘ κΈ°λ³Έ μμ 03 : 볡μ‘ν ꡬ쑰μμμ νμ μΆλ‘ λ°©μ
interface Dropdown<T> {
value: T;
title: string;
}
interface DetailedDropdown<K> extends Dropdown<K> {
description: string;
tag: K;
}
var DetailedItem: DetailedDropdown<string> = {
title: 'hello',
description: 'ab',
value: 'a',
tag: 'a'
}
μ²μμλ μΈν°νμ΄μ€λ‘ μ λλ¦μ μ μΈν΄μ£Όκ³ valueκ°λ T μ λλ¦ ννλ‘ νμ μ μ. κ·Έλ¦¬κ³ λ λ€λ₯Έ μΈν°νμ΄μ€λ₯Ό μ μΈν λλ Dopdown μΈν°νμ΄μ€λ₯Ό extends(νμ₯) ν€μλλ₯Ό μ¨μ λ°λ €μ€λ©΄ κ΅³μ΄ μ μΈνμ§ μμλ μ묡μ μΌλ‘ Dropdownμ μλ μμ±λ€μ΄ λ€μ΄μμλ€. (value, title) κ·Έλ¦¬κ³ μλ‘μ΄ DetailedItem ν¨μλ₯Ό μμ±ν λ DetailedDropdownμ κ°μ Έμ΄κ³Ό λμμ μ¦μ νμ μ μ§μ ν΄μ£Όλ©΄ μμ μλ μΈν°νμ΄μ€λ€ valueκ°λ€μ΄ μλμΌλ‘ stringμΌλ‘ λ³λλλ€. κ·Έλ¦¬κ³ DetailedItem λ³μμ λ΄κΈ΄ μμ±λ€μ λ¬Έμμ΄λ‘ λμ΄ν΄μ£Όμ΄μΌ μλ¬λ₯Ό λ°©μ§ν μ μλ€.
π κ°μ₯ μ μ ν νμ
νμ μ λ³΄ν΅ λͺ κ°μ ννμμ λ°νμΌλ‘ νμ μ μΆλ‘ νλ€. κ·Έλ¦¬κ³ κ·Έ ννμμ μ΄μ©νμ¬ κ°μ₯ κ·Όμ ν νμ μ μΆλ‘ νκ² λλλ° μ΄ κ°μ₯ κ·Όμ ν νμ μ Best Common Typeμ΄λΌκ³ νλ€.
- μμ
let arr = [0, 1, null];
λ°°μ΄μ λ€μ΄κ°λ κ°λ€μ΄ ν νμ μΌλ‘ ν΅μΌλμ§ μμλ€. 2κ°λ μ«μν, 1κ°λ λ Όλ¦¬νμΌλ‘ λ€μ΄κ°μλλ° μ μ½λμ²λΌ μ μΈ ν arr λ³μ μμ λ§μ°μ€ 컀μλ₯Ό μ¬λ € λμΌλ©΄ number | boolean κ°μΌλ‘ μμμ μ λμ¨ λ°©μμΌλ‘ μΆλ‘ ν΄μ€λ€.