[TypeScript] μ λ€λ¦(Generics)
π μ λ€λ¦(Generics)
μ λ€λ¦μ νμ μ ν¨μμ νλΌλ―Έν°μ κ°κ² νλ λ¬Έλ²μ λλ€.
μ λ€λ¦μ ν¨μλ₯Ό νΈμΆνλ μμ μ νμ μ λ겨μ€λλ€.
ν€μλ: T
function logText<T>(text: T): T {
console.log(text);
return text;
}
logText("νμ΄");
νκ°μ§ νμ λ³΄λ€ μ¬λ¬ κ°μ§ νμ μμ λμνλ μ»΄ν¬λνΈλ₯Ό μμ±νλλ° μ¬μ©λλ©° μ¬μ¬μ©μ±μ΄ λμ μ»΄ν¬λνΈλ₯Ό λ§λ€ λ μμ£Ό νμ©λ©λλ€.
π μ μ λ€λ¦μ μ¬μ©ν κΉ?
λ¨μν νμ μ λ°κΏ μ¬μ©νκΈ° μν΄μ μ€λ³΅μ½λκ° μλ ν¨μλ₯Ό κ³μ μμ±νλ κ²μ μ μ§λ³΄μμ μ’μ§μμ΅λλ€.
function logText(text: string) {
console.log(text);
return text;
}
function logNumber(num: number) {
console.log(num);
return num;
}
logText
μlogNumber
λ κ°μ λ΄μ©μ ν¨μμ§λ§ νλΌλ―Έν°μ νμ μ΄ λ€λ₯Έ μ΄μ λ‘ λ°λ‘ μμ±λμλ€.
function logText<T>(text: T): T {
console.log(text);
return text;
}
const str = logText<string>("abc");
str.split("");
const login = logText<boolean>(true);
μ΄λ κ² μ λ€λ¦μ μ¬μ©ν΄μ ν¨μμ νλΌλ―Έν°κ°μ μ§μ νλ€λ©΄ ν¨μλ₯Ό νΈμΆν λ μ΄λ€ νμ μ μ§μ ν΄λ μ½λλ₯Ό μ§νν μ μμ΅λλ€.
π μ΄λ€ κ²½μ°μ μ λμ¨νμ μ΄ μλ μ λ€λ¦μ μ¬μ©ν κΉ?
μ¬λ¬ νμ μΌλ‘ ν¨μμ νλΌλ―Έν°λ₯Ό μ μν κ²½μ° μ λμ¨μ μ¬μ©νλ λ°©λ²λ μμ΅λλ€.
νμ§λ§ μ λμ¨νμ μ λ°νκ°μμ λ¬Έμ κ° μκΈΈ μ μμ΅λλ€.
function logText(text: string | number) {
console.log(text);
return text;
}
const a = logText("a");
a.split(10); //μλ¬. νμ
μ μ νν μ μΈν΄μΌλ§ λ΄μ₯ν¨μλ₯Ό μ¬μ©ν μ μμ.
logText(10);
text
κ° μ λμ¨νμ
μΌλ‘ string
κ³Ό number
λ‘ μ§μ λμκΈ° λλ¬Έμ λ΄μ₯ν¨μλ₯Ό μ¬μ©ν μ μλ λ¬Έμ μ μ΄ λ°μν©λλ€.
λ°λΌμ μν©μ μ μ ν μ λμ¨ νμ κ³Ό μ λ€λ¦ νμ μ μ¬μ©ν΄μΌ ν©λλ€.
π¬ μ΅μ λκΈ