什么是打字稿中的空白(条件&&操作)



我以前见过这种语法,如果条件为真,我想做一些事情,我会这样写出来。

() => void (x === 0 && this.setZero())

为什么要把x === 0 && this.setZero()包裹在空隙中? 这种模式叫什么名字?

void 将返回未定义,但如果this.setZero()返回未定义,为什么不这样做呢?

() => x === 0 && this.setZero()

它们都是有效的 ts。用空隙包裹它更安全吗?

这只是JavaScript的事情。

void是一个非常奇怪的JavaScript运算符:它计算其操作数,然后将undefined作为结果。所以你的

() => void (x === 0 && this.setZero())

。是一个总是返回undefined的箭头函数,可能会有调用this.setZero()(如果x === 0)的副作用。

为什么你把 x === 0 && this.setZero() 包装在 void 中?

这样函数总是返回undefined而不是返回false(如果x === 0为假)或this.setZero()的结果(如果x === 0true)。

这种模式叫什么名字?

我认为它没有,特别是。

您的() => x === 0 && this.setZero()替代方案将返回falsethis.setZero()的结果。

我只想指出

() => void (x === 0 && this.setZero())

究竟做了什么

() => { x === 0 && this.setZero(); }

确实如此,因为除非你使用return,否则详细箭头函数不会返回任何内容;另一种选择是:

() => { if (x === 0) this.setZero(); }

最新更新