首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >eslint: if条件词的非隐式强制

eslint: if条件词的非隐式强制
EN

Stack Overflow用户
提问于 2021-08-10 01:06:40
回答 1查看 532关注 0票数 0

我在TypeScript中与TypeScript一起使用eslint。

是否可以警告在any条件中使用if类型的下列代码?我尝试过no-implicit-coercion规则,但它没有起作用。

代码语言:javascript
运行
复制
const foo = (a: any) => {
  if (a) { // this should be warned
    return 42;
  } else {
    return false;
  }
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-08-10 02:24:02

你在找@typescript-eslint/strict-boolean-expressions

默认情况下,它禁止条件数中的any,但也禁止可空布尔值、可空字符串和可空数字。要仅禁止any,可以使用以下配置:

代码语言:javascript
运行
复制
"rules": {
  "@typescript-eslint/strict-boolean-expressions": [2,  {
    "allowNullableBoolean": true,
    "allowNullableString": true,
    "allowNullableNumber": true
  }]
}

但就我个人而言,我不建议这样做,我会保留默认设置的规则,因为它可以防止这样的bug(尽管只是一个人为的例子):

代码语言:javascript
运行
复制
declare const maybeNumber: number | null
if (maybeNumber) {
  // number could actually be null, 0, or NaN!
  console.log('maybeNumber is not null!') // oops
  let thisIsNaN = 123 / maybeNumber
}

此外,您还可以使用@typescript-eslint/no-explicit-any来完全避免代码库中的any;使用unknown代替。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68720053

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档