【发布时间】:2020-12-10 05:06:44
【问题描述】:
给定一个函数,它接受一个对象数组,并返回一个对象,其键都对应于参数中每个对象的属性...似乎应该有一种方法来获得更明确的返回类型.
函数-
function objectFromArray(arr: { key: string }[]) {
let obj: {[k: string]: true} = {};
for (let {key} of arr) {
obj[key] = true;
}
return obj;
}
如果我运行以下命令
let myArray = [{key: 'a'}, {key: 'b'}, {key: 'c'}];
let myObj = objectFromArray(myArray);
那么myObj的类型是
let myObj: {
[k: string]: true;
}
但我觉得存在足够的信息,以便打字稿推断myObj 的类型实际上是
let myObj: {
a: true;
b: true;
c: true;
}
我的问题是在 objectFromArray 函数中需要做什么才能根据参数导出显式返回类型。为了清楚起见,我不担心返回类型的值,只担心获取显式键。
【问题讨论】:
标签: typescript typescript-typings typescript-generics