gpt4 book ai didi

javascript - 是否有 ESLint 规则来防止 `Promise` 到 `boolean` 转换

转载 作者:行者123 更新时间:2023-12-05 02:44:03 30 4
gpt4 key购买 nike

我想要一个规则来防止 Promise<boolean>从被转换到boolean :

// ERROR: This is always true because it is a promise
if( !authorize() ){
throw new Error('Go away!');
}

正确:

// Good, only true if the promise result is true
if( !await authorize() ){
throw new Error('Go away!');
}

给定这样的东西:

async authorize(){
// I don't really support bribery
return await doesUserHaveCredentials() || didUserPayMeABunchOfMoney();
}

我试过的规则:

  • require-await:这个名字看起来不错,但这个规则只是检查异步函数是否在某处包含 await
  • @typescript-eslint/no-floating-promises:有帮助,但不会阻止 bool 类型转换
  • @typescript-eslint/strict-boolean-expressions:在这种情况下没有帮助

有人知道在 if(!promise()) 上会出错的规则吗? ?

最佳答案

我认为您需要 @typescript-eslint/no-misused-promises 中的 checkConditionals 选项(默认启用) :

Examples of incorrect code for this rule with checksConditionals: true:

const promise = Promise.resolve('value');

if (promise) {
// Do something
}

关于javascript - 是否有 ESLint 规则来防止 `Promise<boolean>` 到 `boolean` 转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66604210/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com