定义函数泛型,在使用时指定具体类型,传递的参数要跟定义类型保持一致。
function join<T>(first: T, second: T) {
return `${first}${second}`
}
const result = join<number>(1, 3)
定义可接受泛型数组的方法,在使用时指定具体类型,传递的参数类型要和定义类型保持一致。
function map<T>(parmas: T[]) {
return parmas
}
const result2 = map<string>(['jake', 'smith'])
console.log(result2)
指定多个泛型参数,每个泛型参数可代表不同类型,在使用时指定具体类型,参数类型要和定义类型保持一致。
function join2<T, P>(first: T, second: P) {
return `${first}-${second}`
}
const result3 = join2<number, string>(12, 'jake')
console.log(result3)
TypeScript支持类型推断,所以可以不指定具体泛型代表的类型,也能正常编译。
const result4 = join2(12,'smith')
console.log(result4)