打字稿中的Java双冒号运算符等效(如果有的话):
stream.forEach( System.out::println(s));
编辑: 我知道它对某些功能是可行的,例如:
stream.forEach(console.log);
stream.filter(Boolean);
但是当我使用其他功能时BehaviorSubject“下一个”我的代码中断。我不知道其他两个被引用称为什么资格。我想要类似的东西:
stream.pipe(someSubject.next);
代替:
stream.pipe(value => someSubject.next(value));
答案 0 :(得分:0)
好的,所以我做了一些搜索,并且JScript中有一个双冒号运算符,它是Microsoft对JavaScript的实现:
双冒号用作脚本ID和事件名称之间的分隔符
我的猜测是Internet Explorer的ECMAScript实现不属于(或不再属于),但它属于(或曾经属于)Microsoft Office的实现
What does ‘::’ (double colon) do in javascript for events?
这是一个非常酷的发现,但我从未见过TS或ECMAScript中使用双冒号运算符。
您可以使用lambda表达式
[].forEach((item: any) => console.log(item))
但是我很确定JS或TS没有像Java那样有lambda表达式的包装器。
编辑:经过更多搜索,我也发现了这个What does ‘::’ (double colon) do in JavaScript?,它也是有效的ES7运算符,作为绑定的语法糖:http://blog.jeremyfairbank.com/javascript/javascript-es7-function-bind-syntax/
尽管它的行为与Java的::运算符不同。