2024-05-09.md
π‘DIL: μ΄νν°λΈ νμ μ€ν¬λ¦½νΈ
μ€ν°λ: μκ° CS, https://github.com/monthly-cs/2024-05-effective-typescript
μμ±μΌ: 2024-05-09
μμ±μ: dusunax
μμ΄ν 3
μ€λ²λ‘λ
- μ κΈ°ν ν¨μ μ€λ²λ‘λ©
// tsConfig: {"noImplicitAny":false}
function format(input: number): string; // μ«μ νμ
function format(input: string): string; // λ¬Έμμ΄ νμ
function format(input: any): string {
if (typeof input === "number") {
return `Number: ${input}`;
} else if (typeof input === "string") {
return `String: ${input}`;
} else {
throw new Error("Unsupported type");
}
}
const formattedNumber = format(42); // "Number: 42"
const formattedString = format("Hello"); // "String: Hello"
μμ΄ν 4
- ꡬ쑰μ νμ΄ν!! λ νμ΄ν! π¦
- νμ 체컀μ νμ μ λν μ΄ν΄λκ° μ¬λκ³Ό λ€λ₯΄λ€
ꡬ쑰μ νμ΄ν λ¬Έμ μμ: κ°λ°μμ μλμ λ€λ₯΄κ², μλ μ½λμμ μλ¬κ° λ°μνμ§ μμ
type λ§_λ¨κ³ = 1 | 2 | 3 | 4 | 5;
// λ§λΌνκ³Ό νν루λ₯Ό μ μνλ μΈν°νμ΄μ€
interface νν루 {
μ¬λ£: string[];
λ¨λ§: λ§_λ¨κ³;
}
function λ§λΌνλ§λ€κΈ°(λ§λΌν: νν루) {
console.log("μ¬λ£λ‘ λ§λΌν λ§λ€κΈ°:", λ§λΌν.μ¬λ£);
// λ§λΌν λ§λλ λ‘μ§
}
function νν루λ§λ€κΈ°(νν루: νν루) {
console.log("μ¬λ£λ‘ νν루 λ§λ€κΈ°:", νν루.μ¬λ£);
// νν루 λ§λλ λ‘μ§
}
// λ§λΌν μ¬λ£μ λ§€μ΄ μ λ
const λ§λΌνμ¬λ£ = ["μκ³ κΈ°", "λλΆ", "λ²μ―"];
const λ§λΌνμ리 = {
μ¬λ£: λ§λΌνμ¬λ£,
맀μ΄λ§: 5,
μΌμΌλ§: 5,
λ¨λ§: 1 as λ§_λ¨κ³,
};
// νν루 μ¬λ£μ λ§€μ΄ μ λ
const νν루μ¬λ£ = ["λΈκΈ°", "μ€μΈλ¨Έμ€μΊ£", "λΌμ§κ³ κΈ°"];
const νν루μ리: νν루 = {
μ¬λ£: νν루μ¬λ£,
λ¨λ§: 5,
};
// λ§λΌνκ³Ό νν루 λ§λ€κΈ°
λ§λΌνλ§λ€κΈ°(λ§λΌνμ리);
νν루λ§λ€κΈ°(νν루μ리);