JuniorTour / vue-template-babel-compiler

Enable Optional Chaining(?.), Nullish Coalescing(??) and many new ES syntax for Vue.js SFC based on Babel
https://www.npmjs.com/package/vue-template-babel-compiler
118 stars 9 forks source link

[Bug] ?.使用不符合预期 #24

Closed lalahuang closed 2 years ago

lalahuang commented 2 years ago

Current behavior

// your code goes here

image image applytime属性不存在的时候应该直接返回‘-’,而不是再读取substring方法

Expected behavior

Usage

Extra

JuniorTour commented 2 years ago

谢谢你的反馈,但似乎你描述的表现是符合预期的,并非BUG,

我在浏览器的 console 里尝试执行了这两句:

({a: 1})?.b.substring ?? '_' // VM190:1 Uncaught TypeError: Cannot read properties of undefined (reading 'substring')

({a: 1})?.b?.substring ?? '_' // '_'

结果如下: image

所以,截图中抛出错误是正确的行为。

如果你把截图中的代码改为 item?.applyTime?.substring(0,10) ?? '_',即在substring()前使用一个可选链操作符 ?.,应该就能按你的预期返回 '_'