夹在两个不受限制的语法违规之间

Posted

技术标签:

【中文标题】夹在两个不受限制的语法违规之间【英文标题】:Caught between two no-restricted-syntax violations 【发布时间】:2018-04-23 03:27:08 【问题描述】:

这是我的原始代码:

const buildTableContent = (settings) => 
  const entries = [];
  for (const key in settings) 
    for (const subkey in env[key]) 

settings基本上是字典的字典

    
    'env': 'name': 'prod', 
    'sass: 'app-id': 'a123445', 'app-key': 'xxyyzz'
  

它触发了以下 AirBnb 风格指南错误:

35:3 错误 for..in 循环遍历整个原型链, 这几乎不是你想要的。采用 Object.keys,values,entries,并遍历结果数组 无限制语法

所以我把代码改成

const buildTableContent = (settings) => 
  const entries = [];
  for (const key of Object.keys(settings)) 
    for (const subkey of Object.keys(env[key])) 

按照建议。

现在当我运行 lint 时,我得到了这个:

35:3 错误迭代器/生成器需要 regenerator-runtime,这对于本指南来说太重了,无法允许它们。分别地, 应避免循环以支持数组迭代 无限制语法

所以在我看来,无论哪种方式,他们都违反了某些 lint 样式。

我该如何解决这个问题?

【问题讨论】:

【参考方案1】:

你想使用

Object.keys(settings).forEach(key => 
  Object.keys(env[key]).forEach(subkey => 

或者可能是Object.entriesObject.values,这取决于您是否真的想要这些密钥。

【讨论】:

我正在使用redux-saga,我必须使用yield关键字顺序调用api..yield不能在forEach的函数回调中使用,因为回调不是生成器函数。所以我被卡住了问题中提到的两个错误。有出路吗? @anuragb26 哪个规则?我可能会把它关掉。 'no-restricted-syntax': ...是的,我关掉了 @anuragb26 为了使用 yield 你可以为 (const elem of elemArray) yield fn() 做这样的事情 为什么首选使用 forEach?

以上是关于夹在两个不受限制的语法违规之间的主要内容,如果未能解决你的问题,请参考以下文章

Audience Network - 涉嫌捆绑和展示位置违规的申诉限制为 3 次

编辑小部件的文本,不受 RemotView 的限制

poj1062昂贵的聘礼

夹在与 KineticJS 楔子的交点上

blender无法连接顶点

SOLT/SSLT/SSST/SOLR/LRL都是什么?