好的,所以我有一个离子选择器,并给了它一个完成按钮,该按钮可以读取所选值并将其保存在数组中。整个过程都没有问题,但是在编译时总是导致显示此错误:
"error TS2322: Type '() => Promise<void>' is not assignable to type
'(value: any) => boolean | void'.
Type 'Promise<void>' is not assignable to type 'boolean | void'.
Type 'Promise<void>' is not assignable to type 'void'."
这不是一个真正的问题,因为该错误仅在我编译时出现,并且没有造成任何实际损害,但我仍然希望解决它。
我尝试了很多方法来解决此问题,但是在不破坏处理程序功能的情况下,没有任何错误可以解决。 (如下所示)
{
text: 'Done',
role: 'confirm',
handler: async () => {
const vari = await this.picker.getColumn(this.pickervalues[id].name);
this.selectedvalue = vari.options[vari.selectedIndex].text;
this.selected[id] = this.selectedvalue;
}
}
有人知道如何消除此错误吗?
答案 0 :(得分:1)
您可以使用 then 代替async / awiat:
{
text: 'Done',
role: 'confirm',
handler: () => {
this.picker.getColumn(this.pickervalues[id].name).then(() => {
this.selectedvalue = vari.options[vari.selectedIndex].text;
this.selected[id] = this.selectedvalue;
});
}
}
查看此Github issue 供其他参考。