泛型是指在定义函数、接口或类的时候,不预先指定具体的类型,而在使用的时候再指定类型的一种特性。一直是ts学习中的一个重难点。
具体的学习资料还是看官网吧。这里出一个题目:
写一个函数,接受两个参数,一个为object,另一个为object中的一个key。函数返回类型指定为obj[key]的类型。
interface Person{
name:string,
age:number
}
function demo<T extends object, K extends keyof T>(obj:T, key:K){
return obj[key]
}
//测试
let obj:Person={
name:"tea",
age:23
}
let age = demo(obj, "age") // number类型
let name = demo(obj, "name") // string类型