首页 > 解决方案 > 调用不带 `.then()` 或 `await` 且不带 TypeScript 的异步函数的 Lint 警告

问题描述

在 TypeScript 中,可以检查并警告开发人员是否正在async同步调用函数。

对于那些希望减少开销并使用 node.js v9.0+ 的人,如果我们有这样的东西,是否可以让任何 linter 给我们一个警告?

async function foo() {
  return;
}

var result = foo(); // warning right here because there is no await

fooAsync原因是,除非我们明确命名它,查看实现,或者假设一切都是异步的,否则函数是否返回一个 Promise/is await 显然不是。或者也许开发人员搞砸了,忘记写了await

只想在开发时而不是运行时发出警告以捕获错误。

标签: javascriptnode.jsasync-awaiteslint

解决方案


不,那是不可能的。正如你所说,它需要类型推断或至少注释来决定一个函数是否会返回一个承诺。这就是 TypeScript 编译器之类的类型检查器所做的,而不是 linter。


推荐阅读