【发布时间】:2021-07-17 01:45:01
【问题描述】:
如果我们有一个函数,它从给定对象和字符串属性名称作为参数的对象返回属性值,我们将如何为其编写类型定义?
const obj = {
name: 'Hello',
age: 32,
};
function getProp<OBJ>(obj: OBJ, propname: keyof OBJ): DONT_KNOW_TYPE {
return obj[propname];
}
const name = getProp(obj, 'name');
我们如何正确键入返回值,以便强制执行 propname 参数请求的属性的属性类型?本质上,应该用什么来代替DONT_KNOW_TYPE?
当然any 和OBJ[keyof OBJ] 是可能的,但它并没有明确强制第二个参数中声明的属性类型,并且默认情况下,typescript 推断函数的返回类型是所有OBJ 中的属性类型不太理想。
【问题讨论】:
标签: typescript types typescript-generics