可选链接和无效合并运算符的Eslint规则

时间:2019-08-06 14:32:29

标签: javascript babeljs eslint

我正在寻找

的相关陪同规则
  • @ babel / plugin-proposal-optional-chaining
  • @ babel / plugin-proposal-nullish-coalescing-operator

当我执行以下操作时,我的编辑器会以红色突出显示

const baz = obj?.foo?.bar?.baz; // 42
const safe = obj?.qux?.baz; // undefined
const foo = obj.baz ?? 'default'; // default
// eslint-disable-next-line no-console
console.log('baz', baz);
// eslint-disable-next-line no-console
console.log('safe', safe);
// eslint-disable-next-line no-console
console.log('foo', foo);

该代码正常工作,但是eslint用红色突出显示了我的代码。

参考:

4 个答案:

答案 0 :(得分:21)

var kafka = require('kafka-node'); var producer_client = new kafka.Client(producer_kafka_server); var producer = new kafka.Producer(producer_client); producer.on('ready', function(){ condole.log('kafka producer is ready...') //not message is printed }) var payloads = [{ topic: producer_topic, messages: message, partitions: 0, attributes: 0 }, ]; producer.send(payloads, function (err, data) { if (err != null) logger.error(err); }); 开始,原生支持空值合并运算符。

最简单的方法是在package.json中设置ES2020:

eslint>=7.5.0

答案 1 :(得分:6)

将以下配置添加到您的eslint

"parser": "babel-eslint"

答案 2 :(得分:2)

您是否尝试过将eslint配置上的解析器设置为“ babel-eslint”? https://www.npmjs.com/package/babel-eslint是使用eslint尚不支持的实验功能时的推荐解析器。

答案 3 :(得分:1)

您必须使用此插件:https://github.com/babel/eslint-plugin-babel

然后,您可以禁用原始的eslint-rule并启用其babel版本,这样便不会显示任何错误。您的eslint-config可能如下所示:

{
  parser: "babel-eslint",
  rules: {
    "no-unused-expressions": 0,
    "babel/no-unused-expressions": 1
  },
  plugins: ["babel"]
}