我经常把 async
前面的React方法 componentDidMount
. (这让我可以使用 await
而非 .then()
在我的异步调用中)。)
这导致我的编辑器--IntelliJ--发出警告信息,称 Incompatible override, should have typed void
.
我应该为这个警告失眠吗?
我不会担心这个问题。
一般来说,给一个函数一个返回类型为 void
只是表明函数的调用者不应该使用它的返回值。如果 componentDidMount
遵守了这一约定(它确实遵守了),那么它的返回值将永远不会被使用。所以,返回值是多少并不重要.
在这种情况下,如果你把它 async
然后它就开始返回一个 Promise
而不是 undefined
. 如上所述,这种差异与调用者无关,所以你可以将方法做成 async
毫无问题。