ν¨μ νμ
π‘ν¨μλ₯Ό μ€λͺ
νλ κ°μ₯ μ’μ λ°©λ²
JS - μ΄λ€ λ§€κ°λ³μλ₯Ό λ°κ³ μ΄λ€ κ²°κ³Όκ°μ λ°ννλ μ§ μ΄μΌκΈ°
TS - μ΄λ€ [νμ
μ] λ§€κ°λ³μλ₯Ό λ°κ³ , μ΄λ€ [νμ
μ] κ²°κ³Όκ°μ λ°ννλ μ§ μ΄μΌκΈ°
// ν¨μ νμ
μ μ
function func(a: number, b: number): number {
// λ°νκ°μ νμ
μ μμ΄λ μΆλ‘ κ°λ₯
return a + b;
}
// νμ΄ν ν¨μμ νμ
μ μ μνλ λ°©λ²
const add = (a: number, b: number): number => a + b;
1οΈβ£ν¨μμ λ§€κ°λ³μ
function introduce1(name = "μμμ΄", tall: number) {
console.log(`name: ${name}`);
console.log(`tall: ${tall}`);
}
introduce1("μμμ΄", 180);
// λ§€κ°λ³μλ₯Ό λͺ¨λ λ£μ§ μμμ μ€λ₯ λ°μ
introduce1("μμμ΄");
// ?λ₯Ό λΆμ¬μ ν΄κ²°
function introduce2(name = "μμμ΄", tall?: number) {
console.log(`name: ${name}`);
console.log(`tall: ${tall}`);
}
introduce2("μμμ΄");
2οΈβ£μ νμ λ§€κ°λ³μμ μ‘΄μ¬
βμ νμ λ§€κ°λ³μλ νμ λ§€κ°λ³μλ³΄λ€ λ€μ μμ΄μΌ νλ€.
// tallμ΄ undefined μΌ μλ μμ΄ μ€λ₯ λ°μ
function introduce3(name = "μμμ΄", tall?: number) {
console.log(`name: ${name}`);
console.log(`tall: ${tall + 10}`);
}
// typeofλ‘ ν΄κ²°
function introduce4(name = "μμμ΄", tall?: number) {
console.log(`name: ${name}`);
if (typeof tall === "number") {
console.log(`tall: ${tall + 10}`);
}
}
// μ νμ λ§€κ°λ³μκ° νμ λ§€κ°λ³μλ³΄λ€ μμ μμ΄ μ€λ₯ λ°μ
function introduce5(name = "μμμ΄", tall?: number, age: number) {
console.log(`name: ${name}`);
console.log(`tall: ${tall}`);
}
// ν΄κ²°
function introduce6(name = "μμμ΄", age: number, tall?: number) {
console.log(`name: ${name}`);
console.log(`tall: ${tall}`);
}
3οΈβ£ λ§€κ°λ³μμ κ°μ - ...rest λ°°μ΄, νν
// λ§€κ°λ³μμ κ°μμ μκ΄μμ΄ λͺ¨λ λν΄μ λ°ν
// ...rest: κ°λ³μ μΈ κ°μμ λ³μλ₯Ό λ°°μ΄λ‘ λ¬Άμ΄μ restμ λ£μ΄μ€λ€.
function getSum(...rest: number[]) {
let sum = 0;
rest.forEach((it) => (sum += it));
return sum;
}
// λ§€κ°λ³μμ κ°μλ₯Ό μ νκ³ μΆμΌλ©΄ νν νμ
μ ν
function getSum2(...rest: [number, number, number]) {
let sum = 0;
rest.forEach((it) => (sum += it));
return sum;
}
getSum2(1, 3, 4); // 3κ°λ§ μ
λ ₯ κ°λ₯
ν¨μ νμ ννμ
λΉμ·ν νμμ ν¨μλ₯Ό μ¬λ¬κ° λ§λ€ λ νΈλ¦¬νλ€.
// κΈ°μ‘΄ ν¨μ
const addNum = (a: number, b: number): number => a + b;
// ν¨μ νμ
μ μ΄μ©ν ν¨μ
type Calculation = (a: number, b: number) => number;
const add: Calculation = (a, b) => a + b;
const sub: Calculation = (a, b) => a - b;
const multiply: Calculation = (a, b) => a * b;
const divide: Calculation = (a, b) => a / b;
νΈμΆ μκ·Έλμ²
// νΈμΆ μκ·Έλμ² (μ½ μκ·Έλμ²)
type Calculation2 = {
(a: number, b: number): number;
};
function func(a: number): void {}
const add2: Calculation2 = (a, b) => a + b;
const sub2: Calculation2 = (a, b) => a - b;
const multiply2: Calculation2 = (a, b) => a * b;
const divide2: Calculation2 = (a, b) => a / b;
μ΄μ νλμ μΈνλ° κ°μ "ν μ ν¬κΈ°λ‘ μλΌ λ¨Ήλ νμ μ€ν¬λ¦½νΈ(TypeScript)"λ₯Ό μ°Έκ³ νμ¬ μμ±νμμ΅λλ€.