夹在两个不受限制的语法违规之间
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.entries
或Object.values
,这取决于您是否真的想要这些密钥。
【讨论】:
我正在使用redux-saga,我必须使用yield关键字顺序调用api..yield不能在forEach的函数回调中使用,因为回调不是生成器函数。所以我被卡住了问题中提到的两个错误。有出路吗? @anuragb26 哪个规则?我可能会把它关掉。 'no-restricted-syntax': ...是的,我关掉了 @anuragb26 为了使用 yield 你可以为 (const elem of elemArray) yield fn() 做这样的事情 为什么首选使用 forEach?以上是关于夹在两个不受限制的语法违规之间的主要内容,如果未能解决你的问题,请参考以下文章