函数名后面的 $sign 表示什么?

这是我正在检查的代码..。

import { Observable } from 'rxjs/Rx';
// reducer
import { playerRegister, PlayerState } from './player';
export function getPlayer$ (state$: Observable<MyAppState>): Observable<PlayerState> {
return state$.select(state => state.player);
};
28047 次浏览

在语法上,美元($)字符在 JavaScript 标识符中没有特殊意义。

然而,它有时被约定用来表示一个变量持有一个 Observable或者一个函数将返回一个 Observable

我不确定它是否比 RxJS 社区使用得更广泛,但在这个社区中,它通常用来表示变量是一个流(即可观测的)或者函数返回这样的流。

这是一个名为 芬兰标记法的代码约定,显然是由于首先使用它的 开发商的起源是 归属。它用于指示变量或函数的 Observable类型。

这个想法是,Observer able 通常表示多个 Value<是的trong>是的的流,而多元化的变量/函数名表示这一点。为了不与数组变量(通常也是复数)混淆,使用 $字符代替 s。当读取变量时,您将 $作为 s读取。

例子

在命名一个数组时,您最有可能使用单个元素名称的正确复数形式,如:

const pets = ['cat', 'dog', 'turtle']

然而,如果你有一个可观察的发射这三个值,你会使用:

const pet$ = from(['cat', 'dog', 'turtle']) // read: pets

你和你的团队决定是否使用它。我想到目前为止还没有明确的共识,所以你们可以就此进行长时间的、有意义的辩论; ——)。现在已经有可用的 Tlint 规则,允许您执行您的决定。

对于一个函数,它意味着返回一个可观察的。

对于一个变量,它意味着它是一个可观察的。

这个符号在角度投影中被广泛使用,我发现它非常有用,可以很快看到它是一个可观察的值,而不是实际值。