泛型是指在定義函數、接口或類的時候,不預先指定具體的類型,而在使用的時候再指定類型的一種特性。一直是ts學習中的一個重難點。
具體的學習資料還是看官網吧。這裏出一個題目:
寫一個函數,接受兩個參數,一個爲object,另一個爲object中的一個key。函數返回類型指定爲obj[key]的類型。
interface Person{
name:string,
age:number
}
function demo<T extends object, K entends keyof T>(obj:T, key:K){
return obj[k]
}
//測試
let obj:Person={
name:"tea",
age:23
}
let age = demo(obj, "age") // number類型
let name = demo(obj, "name") // string類型