javascript - 调用不带 `.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
。
只想在开发时而不是运行时发出警告以捕获错误。
解决方案
不,那是不可能的。正如你所说,它需要类型推断或至少注释来决定一个函数是否会返回一个承诺。这就是 TypeScript 编译器之类的类型检查器所做的,而不是 linter。
推荐阅读
- google-cloud-platform - 在 GCP 中配置 URL 重定向
- reactjs - 如何在 React 中提交表单之前延迟文件上传?
- shell - GitLab CI 仅在提交消息与正则表达式不同时才允许作业运行
- python - How to generate an animated curve using animation?
- java - keycloak 使用 securityCollections
- prometheus - 检查 ufw 状态并在未激活时发送 Prometheus 警报
- javascript - 想用更好的算子优化 Airtable 查询
- nuget-package-restore - NuGetAuthenticate 管道失败,无法获取本地颁发者证书
- docker - docker push to private registry 失败“服务器向 HTTPS 客户端提供 HTTP 响应”
- javascript - 画布上最后绘制的线是实心的?