Javascript 函数名末尾的$符号表示什么?

Javascript 函数名末尾的$符号表示什么?,javascript,typescript,ecmascript-6,rxjs,Javascript,Typescript,Ecmascript 6,Rxjs,这是我正在复习的代码 import { Observable } from 'rxjs/Rx'; // reducer import { playerRegister, PlayerState } from './player'; export function getPlayer$ (state$: Observable<MyAppState>): Observable<PlayerState> { return state$.select(state =>

这是我正在复习的代码

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);
};
从'rxjs/Rx'导入{Observable};
//减速器
从“/player”导入{playerRegister,PlayerState};
导出函数getPlayer$(状态$:可观察):可观察{
返回状态$.select(state=>state.player);
};
从语法上讲,美元(
$
)字符在中没有特殊意义


然而,它有时被惯例用来表示变量持有一个或函数将返回一个
可观察的

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

这是一个名为Finnish Notation的代码约定,显然是因为第一次使用它的源代码。它用于指示变量或函数的
可观察类型

其思想是,一个可观察的对象通常表示一个多值流s,一个复数变量/函数名将表明这一点。为了避免与数组变量(通常也是复数形式)混淆,使用
$
字符代替
s
。读取变量时,您将
$
作为
s
读取

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

constpets=['cat'、'dog'、'turtle']

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

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


这取决于你和你的团队是否想使用它。我想到目前为止还没有明确的共识,所以你可以就此展开一场漫长而有意义的争论;-)。已经有一些函数可以让您强制执行您的决定。

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

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


这个符号在角度项目中被广泛使用,我发现快速查看它是一个可观察值而不是实际值非常有用。

有些人用它来表示函数是异步的。
$
只是一个字符,绝对没有significance@robby-谢谢你,你可以移动它来回答。再看看@JaromandaX,我想说“
$
只是一个没有意义的字符”并没有特别大的帮助,因为OP已经明显地看到,或者怀疑,有某种惯例,使用
$
来表示变量的某些质量。因此,问题是“它表明了什么?”。类似的问题可能是“工厂后缀在类名上表示什么?”同样没有帮助的回答可能是“字符
F
A
c
t
o
r
y
没有特殊意义”。从未见过这一点。这个惯例是在任何地方编纂的吗?一个流行的图书馆会使用它吗?@Bergi我已经看过好几次了。据我所知,不局限于特定的库或框架,而是进一步研究。我不想吹毛求疵,但可观察对象不是函数,它们内部或附加的逻辑不一定是异步执行的。@Bergi对Cycle.js的引用提到@MattBurnell You's right。然而,我已经看到它被用于可观察性以及承诺和其他类型的异步函数。将更新我的答案。