我有 ESLint + TypeScript ESlint,它们在项目中没有改变任何规则。在该项目中有一个函数,我想返回一个承诺,即
axios.get
调用,但我无法让它通过 linting 规则。
当我这样做时:
import { ResponseType } from 'axios'
const getPosts = async (): Promise<ResponseType> => {
return axios.get("https://jsonplaceholder.typicode.com/posts")
}
我得到:
在这种情况下需要返回等待的承诺。 eslint(@typescript-eslint/return-await)
所以,我添加了等待:
import { ResponseType } from 'axios'
const getPosts = async (): Promise<ResponseType> => {
return await axios.get("https://jsonplaceholder.typicode.com/posts")
}
但这会导致另一个错误:
在返回值上冗余使用
。 eslint(无返回等待)await
我也尝试摆脱异步,但这导致:
返回 Promise 的函数必须是异步的。 eslint(@typescript-eslint/promise-function-async)
我怀疑默认的 ESLint 与 TypeScript ESlint 冲突,并假设有其他解决方案来重写该函数,以便它可以同时通过。重写该函数的其他选项是什么?
这里是两者的文档:
总原则:
如果某些 JS eslint 规则与 TS 规则冲突,请禁用 JS 规则
很多情况下 TS 规则可能会与同名的 JS 规则冲突
在您的情况下,您的规则与应该被禁用的相反规则冲突
找出它被启用的原因,或者只是禁用它然后忘记