νλ‘ νΈμλ/TypeScript
μ λ€λ¦
alswlfl
2023. 1. 3. 15:52
μ λ€λ¦(Generic)
- ν΄λμ€λ ν¨μ, μΈν°νμ΄μ€λ₯Ό λ€μν νμ μΌλ‘ μ¬μ¬μ© κ°λ₯
- μ μΈ ν λλ νμ νλΌλ―Έν°λ§ μμ±νκ³ , μμ±νλ μμ μ μ¬μ©νλ νμ κ²°μ
function getSize(arr:number[] | string[]):number{
return arr.length;
}
const arr1=[1,2,3];
getSize(arr1);
const arr2=["a","b","c"];
getSize(arr2);
//λ§€κ°λ³μμ νμ
λ§ λ°κΎΈκ³ λμΌν ν¨μλ₯Ό μ¬μ©νκ³ μΆμΌλ©΄, ν¨μ μ€λ²λ‘λ λλ μ λμ¨ νμ
μ¬μ©νκΈ°
//κ³μ νμ
μ΄ λμ΄λλ κ²½μ° μ λ€λ¦ μ¬μ©
//<T>μ¬μ©: Tλ μ΄λ€ νμ
μ μ λ¬λ°μμ ν΄λΉ ν¨μμμ μ¬μ© ν μ μλλ‘ ν¨
function getSize2<T>(arr:T[]):number{
return arr.length;
}
const arr3=[1,2,3];
getSize2<number>(arr3);
const arr4=["a","b","c"];
getSize2<string>(arr4);
const arr5=[false,true, true];
getSize2<boolean>(arr5);
μΈν°νμ΄μ€μμ μ λ€λ¦ μ¬μ©νκΈ°
interface Mobile<T>{
name: string;
price:number;
option: T;
}
const m1:Mobile<{color: string; coupon:boolean}> = {
name:"s21",
price:1000,
option:{
color: "red",
coupon:false,
}
}
const m2:Mobile<string> = {
name:"s2",
price:900,
option:"good",
}