在日常写函数的时候,我们常常会写到函数,像这样
const result1 = {
a: 3,
hello :'world'
}
// 这里屋发断定 o 中是否一定有 name 属性
function get(o: object, name: string) {
return o['name']
}
get(result1, 'xx')
在 ts 中编辑器将会报 这样的错误
可以将通过
// 通过泛型及 keyof 的方式来约束 泛型 K 一定是属于 泛型 T 的属性
function get1<T extends object, K extends keyof T>(o: T, name: K): T[K]{
return o[name]
}
get1(result1,'a')
这样就能安安心心的使用了
方法没提示错误,在使用方法的时候,第二个参数也有给予提示(枚举类)