是否使用Typescript或ESLint规则来禁止默认返回(以lambda表示)?

bz4sfanl  于 2023-05-19  发布在  TypeScript
关注(0)|答案(1)|浏览(167)

我在代码中遇到了这个错误,我觉得它应该被Lint或Typescript本身发现。是否有一个插件/附加设置,我可以设置为使“默认返回”编译警告?
我写的是:

activeRegion = regions.find( region => { region.countryCode === activeCountryCode } )

我应该写的是:

activeRegion = regions.find( region =>  region.countryCode === activeCountryCode  )

第二个执行您想要的操作,并返回条件为真的区域。
第一个,因为你实际上已经写了一个函数,所以需要返回。但是因为JS有默认返回的概念,所以它实际上变成了这样

activeRegion = regions.find( region => { 
   region.countryCode === activeCountryCode
   return undefined;
 } )

在这种情况下,这当然是无稽之谈(什么也找不到),那么有没有一个lint规则可以阻止这些偷偷摸摸的默认返回被添加进去呢?

92dk7w1h

92dk7w1h1#

规则array-callback-returnno-unused-expressions都将由此代码触发。
要手动添加规则,请参阅以下文档:
.eslintrc.js中:

{
    ...
    "rules": {
        "array-callback-return": "error",
        "no-unused-expressions": "error",
    }
}

或者在yaml中:

rules:
  array-callback-return: error
  no-unused-expressions: error

使用eslint的一种更简单的方法是使用插件或扩展基本配置。
这增加了一组规则,而不必逐个添加它们。
例如.eslintrc.js

...
  extends: ["airbnb-typescript", ... ],

...
  plugins: ["@typescript-eslint", ...],

两个常用的是来自AirbnbTypescript plugin的,但还有更多。
请注意,您需要先安装该软件包,然后再将其添加到eslint配置。
更多信息请参阅eslint documentation

相关问题