微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

关于在 JavaScript 中浏览嵌套结构的防御性语法替代方案的意见/反馈

如何解决关于在 JavaScript 中浏览嵌套结构的防御性语法替代方案的意见/反馈

最近我被带到了一个新的代码库,在那里我看到了很多这样的代码,几乎无处不在

if(a && a.b && a.b.c && a.b.c.d) {
  // do something with d
}

我注意到,由于产品产生了大量的$$$,我们确实需要避免运行时错误。所以这最终成为团队中的习惯用法,每次你想要对象中的某些东西时,请使用上面的语法。

但正如您所想,这并不是在所有地方都强制执行(尤其是在可能重要的地方),更糟糕的是,在我们已经验证了对象形状的区域中,它已成为一种习惯。

所以这是我的问题:你会推荐什么来帮助改变一个采用这种低效习惯(错误的安全感)来防御性检查每个加入的团队。

这里有一些想法,但我很高兴听到您的故事和您的经验反馈。

一些想法:

  • 使用 ts 或 babel 并使用可选链 => ​​不会改变问题,但会(不是?)简化语法
  • 强制使用唯一的帮助程序来安全访问 (custom / lodash.get / ramda.pathOr,...)
  • 让团队了解 Lenses 概念并使用这些概念
  • 在数据层和表示层之间添加一个强大的验证层
  • 展平嵌套对象并使用展平形式 ({ a: { b: 2 },c: [3,4]} ==> { 'a.b': 2,'c.0': 3,'c.1': 4 })
  • ...

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。