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

新手上路,请多包涵

这是我正在审查的代码……

 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);
};

原文由 ishandutta2007 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 226
2 个回答

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

但是,有时按照惯例使用它来指示变量包含 Observable 或函数将返回 Observable

原文由 Robby Cornelissen 发布,翻译遵循 CC BY-SA 3.0 许可协议

这是一个名为 Finnish Notation 的代码约定,显然是由于首先使用它的 开发人员来源。它用于指示 Observable 变量或函数的类型。

这个想法是 Observable 通常代表多个 Value 的流,复数变量/函数名称将表明这一点。为了不与数组变量(通常也是复数)混淆,使用 $ 字符代替 s 。读取变量时,您会将 $ 读取为 s

例子

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

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

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

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

是否要使用它取决于您和您的团队。我想到目前为止还没有明确的共识,所以你可以就它进行长期而有意义的争论;-)。已经有可用的 tslint 规则,允许您强制执行您的决定。

原文由 ggradnig 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题