function numtion<T, U extends keyof T>(event: T, key: U): T[U] {
return event[key]
}
let obj = { name: 'zs', age: 18 }
numtion(age, 'name')
描述:
1. keyof T 实际上获取的是 obj 对象内所有的值联合类型 也就是 name | age
2. 添加了类型变量 U , T 和 U 类型之间要逗号分隔
3.类型 U 受 T 约束可以理解为 U 只能是 T 类型只能访问对象内存在的属性
然后
可以看到这里报错了 那么报错的原因是什么?
这里说 不能将nas 赋给类型 name | age xxxx什么的, 也不是太能看懂
用自己的话总结就是: nas 在
age 对象内是不存在这个属性的 , 只有存在才能正常运行,不会报错