财产'标签'类型'中缺少;string[]'但在type-typescript错误中是必



我有一个名为Person的类型,如下所示:

type Person = {
value?: string[];
label?: string[];
};

我有这个承诺功能

async function main(): Promise<Person> {
const foo = await dynamicsWebApi.retrieveAll("accounts",["name"]).then(function (stuff) {
var records = stuff.value

const options = records?.map(d => ({
"value" : d.name,
"label" : d.name
}))
console.log(options)


}).catch(function (error) {
console.log(error)
})

return options
}

因此,我将api调用转换为值和标签(称为选项(,并需要将其传递给react组件(在我的return语句中。

但是我得到错误

类型"string[]"与类型"Person"没有共同的属性

当我将鼠标悬停在"return options"命令上时。

你知道我该如何更好地制定我的承诺以避免这个错误吗?

谢谢!

对我来说,这似乎很奇怪,因为你正在检索一个列表的person对象,每个对象都有一个标签和一个值。这与您定义的Person对象不一致。

如果是这种情况,可以这样写:

type Person = {
value?: string;
label?: string;
}
async function main(): Promise<Person> {
const stuff = await dynamicsWebApi.retrieveAll("accounts",["name"]);
const records = stuff.value;
if (!records) {
return [];
}
const options: Person[] = records.map(d => ({
value: d.name,
label: d.name
}));

return options;
}

最新更新