我写 JS 已经快二十年了,但我仍然不明白为什么?不是反模式的开始,特别是对于方法调用。
我看到帖子了
引起我注意的是第二个“带有函数调用的可选链”:
const user = { getName: () => 'Alice', }; console.log(user.getName?.()); // Alice console.log(user.getAge?.()); // undefined
这尖叫着“我不知道我的对象的接口,而且我不在乎。”
你绝对应该关心你的对象的接口。
如果库 API 发生变化,我几乎可以看到鲁棒性的论点,但不,如果您使用库,您知道对象的接口,请修复您的代码。
它看起来就像是一个巨大的虫子吸引器。
你永远不希望某些东西是未定义的。或者我错过了有关此的备忘录?
对于方法来说,这更加重要。如果两个对象没有相同的行为,则需要将它们视为不同的类型,而不仅仅是耸耸肩说“没关系”。
如今测试 null 违法吗?我知道 null 被称为十亿美元的错误,但这是通过选项类型(如 Haskell 中的 Maybe)解决的,而不是看起来相反的问题。
选项类型让您知道这可能为空,因此请谨慎操作。它并没有隐藏事实,比如?是的。
尽管如此,我很高兴能够摆脱这样的观念?。在检查 null 时只是把罐头踢到路上,或者在未定义时只是糟糕的设计。
什么是好的模式,即可以减少错误的模式,您可以使用?.?
以上是就像我是你的学弟一样解释:为什么是?好的?的详细内容。更多信息请关注PHP中文网其他相关文章!