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

Wil*_*mer 7 rxjs typescript

打字稿中Java双冒号运算符的等价物是什么(如果有的话):

stream.forEach( System.out::println(s));
Run Code Online (Sandbox Code Playgroud)

编辑:我知道某些功能是可行的,例如:

stream.forEach(console.log);
stream.filter(Boolean);
Run Code Online (Sandbox Code Playgroud)

但是当我使用其他函数(例如BehaviorSubject“next”)时,我的代码会中断。我不知道其他两个有什么资格被引用。我想要这样的东西:

stream.pipe(someSubject.next);
Run Code Online (Sandbox Code Playgroud)

代替:

stream.pipe(value => someSubject.next(value));
Run Code Online (Sandbox Code Playgroud)

Mar*_*man 6

好吧,我查了一下,JScript 中有一个双冒号运算符,这是 Microsoft 对 JavaScript 的实现:

\n
\n

双冒号用作脚本 ID 和事件名称之间的分隔符

\n

我的猜测是,这不是(或不再是)Internet Explorer 的 ECMAScript 实现的一部分,但它属于(或曾经属于)Microsoft Office 的实现

\n
\n

\xe2\x80\x98::\xe2\x80\x99 (双冒号)在事件的 JavaScript 中做什么?

\n

这是一个非常酷的发现,但我从未见过在 TS 或 ECMAScript 中使用双冒号运算符。\n您可以使用 lambda 表达式\n[].forEach((item: any) => console.log(item))

\n

但我很确定 JS 或 TS 没有像 Java 那样的 lambda 表达式包装器。

\n

编辑:我还发现了What does \xe2\x80\x98::\xe2\x80\x99 (double colon) do in JavaScript? 经过更多搜索,它也是一个有效的 ES7 运算符作为绑定的语法糖:http://blog.jeremyfairbank.com/javascript/javascript-es7-function-bind-syntax/

\n

尽管它的行为方式与 Java 的 :: 运算符不同。

\n