Javascript RxJS“;点“;vs";管道;抽象

Javascript RxJS“;点“;vs";管道;抽象,javascript,angular,rxjs,rxjs5,rxjs-pipeable-operators,Javascript,Angular,Rxjs,Rxjs5,Rxjs Pipeable Operators,RsJs的操作符从“点”抽象到了“管道”抽象。如果操作员使用符号作为别名,这些原因也会得到解决吗?因此,与其将名为'myOp'的属性添加到原型中,不如将名称作为类似symbol('myOp')的符号?然后它可以作为 var MyOp=require('my-op'); var o=getObservable(); var x=o[MyOp](); 逐一说明理由: 任何导入补丁操作符的库都将为该库的所有使用者增加Observable.prototype,从而产生盲目依赖。如果图书馆取消了它们的使

RsJs的操作符从“点”抽象到了“管道”抽象。如果操作员使用符号作为别名,这些原因也会得到解决吗?因此,与其将名为
'myOp'
的属性添加到原型中,不如将名称作为类似
symbol('myOp')
的符号?然后它可以作为

var MyOp=require('my-op');
var o=getObservable();
var x=o[MyOp]();
逐一说明理由:

任何导入补丁操作符的库都将为该库的所有使用者增加Observable.prototype,从而产生盲目依赖。如果图书馆取消了它们的使用,它们会在不知不觉中破坏其他所有人。使用PipeTables时,必须将所需的运算符导入到使用它们的每个文件中

只有通过
require('myOp')
加载模块时,符号才会附加到原型上,并且不会发生碰撞,因为它是一个符号,不会被删除

直接打补丁到原型上的操作员不能通过rollup或webpack等工具“摇树”。可管道化的操作符将是,因为它们只是直接从模块中拉入的函数

添加到原型中的符号不需要摇动,因为它们是根据需要逐个导入的;如果这个符号出现在原型上,那么输入它的人就会使用它

任何类型的构建工具或lint规则都无法可靠地检测正在应用程序中导入的未使用的运算符。这意味着您可能会导入扫描,但停止使用它,它仍然会添加到输出包中。对于可管道操作符,如果您不使用它,lint规则可以为您拾取它

已加载但未使用的符号易于检测;如果未使用
var MyOp=require('my-op')
MyOp
,则linter可以要求移除该包,这样就不会连接op,因为模块从未加载

功能性成分非常棒。构建您自己的自定义操作符变得越来越容易,现在它们工作起来,看起来就像rxjs中的所有其他操作符一样。你不需要再延长可观察的距离或覆盖提升

模块
my op
会这样声明操作员:

var MyOp=Symbol('MyOp');
prototype[MyOp]=function(){…}
module.exports=MyOp

我想你已经回答了自己的问题。无论如何,我不想写
source[Map](x=>x+1)[Filter](x=>x%2)此外,
管道
方法将很好地与-if结合到语言中。这很公平!我只是想
Symbol
方法不需要
pipe
方法,但是如果JS添加了一个全新的操作符来替换
pipe
方法,那就太好了。如果使用了符号,那么我们也不需要
操作符。每个人都喜欢语法糖,但是一个新的操作符似乎是一个很高的代价,因为我们今天可以使用符号来获得流畅的语法,不是吗?所以我想知道是否还有其他阻碍符号方法的障碍,或者仅仅是括号语法太刺耳?再次回答我自己的问题,我看到的一个问题是对符号的工具支持不是很好。但是我认为修复工具要比添加一个新的操作符更简单……再次扮演魔鬼代言人的角色,虽然符号方法现在可以完成,但它确实需要在
这个
参数中传递穿过管道的数据,其中与
|>
操作符一样,它是作为一个正确的参数传递的。这对像数字这样的原语(我认为)有影响,如果通过
This
传递,这些原语将被装箱,但如果作为propert参数传递,则不会装箱。虽然我不确定这是否会影响RxJs,RxJs是管道可观察对象,但它会影响传递数字的示例。符号方法也有一个缺点,就是存在问题。我认为您已经回答了自己的问题。无论如何,我不想写
source[Map](x=>x+1)[Filter](x=>x%2)此外,
管道
方法将很好地与-if结合到语言中。这很公平!我只是想
Symbol
方法不需要
pipe
方法,但是如果JS添加了一个全新的操作符来替换
pipe
方法,那就太好了。如果使用了符号,那么我们也不需要
操作符。每个人都喜欢语法糖,但是一个新的操作符似乎是一个很高的代价,因为我们今天可以使用符号来获得流畅的语法,不是吗?所以我想知道是否还有其他阻碍符号方法的障碍,或者仅仅是括号语法太刺耳?再次回答我自己的问题,我看到的一个问题是对符号的工具支持不是很好。但是我认为修复工具要比添加一个新的操作符更简单……再次扮演魔鬼代言人的角色,虽然符号方法现在可以完成,但它确实需要在
这个
参数中传递穿过管道的数据,其中与
|>
操作符一样,它是作为一个正确的参数传递的。这对像数字这样的原语(我认为)有影响,如果通过
This
传递,这些原语将被装箱,但如果作为propert参数传递,则不会装箱。虽然我不确定这是否会影响RxJs,因为RxJs是管道可观察对象,但它会影响传递数字的示例。符号方法也有一个缺点,那就是在使用时有问题。