在我的项目中,我使用[[email protected]](https://stackoverflow.com/cdn-cgi/l/email-protection)
,它工作正常,但现在我更新其版本到最新的[[email protected]](https://stackoverflow.com/cdn-cgi/l/email-protection)
,它给了我很多错误.我无法找到任何文档,也没有得到任何想法如何解决这个问题.
下面是我的代码:
abstract class SystemValidator {
constructor() {}
abstract async validate(addr:Addr):Promise<[boolean, Addr[], SystemValidationErrors]>
字符串
}
这给了我一个错误:
错误TS1243:'abstract'修饰符不能与'abstract'修饰符一起使用。
有什么办法解决这个问题吗?我应该从这里删除aync
吗?
2条答案
按热度按时间vngu2lb81#
是的,你应该删除
async
。你不应该强迫实现它的类使用
async
。有其他方法可以返回Promise
,而不仅仅是async
。编辑:
由于有些人不清楚为什么
async
不重要。这里有几种返回promise的方法:字符串
Playground链接
b1zrtrql2#
您可以简单地从声明中删除
async
关键字,并在实现中仍然使用async
。字符串
如果你想知道为什么你不需要它,为什么它是完全多余的,我将参考我在TypeScript Github上找到的这个解释。
async
修饰符只做了两件事:1.让函数返回promise,2.允许在实现中使用await
。由于抽象方法没有实现,并且您必须将其返回类型声明为Promise<Whatever>
,因此async
在该上下文中是多余的。