我有一个名为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;
}