λ¨μΌ μ νμ΄ μλ λ€μν μ νμμ μλλ μ μλ μ»΄ν¬λ¨ΌνΈ μμ±μ΄ κ°λ₯νλ€.
function identity(arg: number): number {
return arg;
}
λ§μ½ λ¬Έμλ₯Ό μ λ ₯νλ κ²½μ°μλ λ¬Έμμ©μΌλ‘ μ ν¨μλ₯Ό μμ±ν΄μΌλλ€.
function identity(arg: any): any {
return arg;
}
any μ νμ μ¬μ©νμ¬ λ§λ€μ΄λ λμ§λ§ λ°νλ λ ν΄λΉ μ νμ μ λ³΄κ° μμ€λμ΄λ μ μμ μΌλ‘ λ°νμ΄ λ μ μλ€λ λ¬Έμ κ° μλ€.
function identity<T>(arg: T): T {
return arg;
}
identity ν¨μμ βTβ λΌλ μ νλ³μλ₯Ό argμμ μΊ‘μ²νμ¬ returnν λ μ¬μ©νλ€. μ΄λ‘μΈν΄ λ°νμλλ λμΌν μ νλ§ λ°ν κ°λ₯νλ€.
identity<'string'>('hello world!!')
identity ν¨μλ₯Ό νΈμΆν λ λ¨Όμ νμ μ μ μΈνλ λ°©λ²μ΄λ€
identity('hello world!!')
μ λ ₯λ°μ argamentμ νμ μ μ μΆν΄ λ΄λ λ°©λ²μ΄λ€. μ»΄νμΌλ¬κ° μ μΆνμ§ λͺ»νλ κ²½μ°κ° μλλΌλ©΄ μ΄λ κ² μ°λκ² μ½κΈ° λ μ½κΈ° μ¬μ 보μΈλ€.
interface Animal {
name: string;
}
function identity<T extends Animal>(arg: T): T {
return arg;
}
λ§μ½ identityμ βnameβμ΄λΌλ μμ±μ΄ μλ μ νμΌλ‘ μ ννκ³ μΆλ€λ©΄ β.nameβ μμ±μ κ°μ§ interfaceλ₯Ό λ§λ€κ³ extendsλ‘ μ μ½ μ‘°κ±΄μ λνλ΄λ©΄ λλ€.