Java方法引用运算符(双冒号)等效于打字稿

时间:2019-05-17 18:57:05

标签: typescript rxjs

打字稿中的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));

1 个答案:

答案 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的::运算符不同。