|
|
1
7
作为
answer
解释在您链接的问题中,参数的最大数量仅受类型定义的约束,而不受运行时源本身的约束。类型定义很有用,因为它们声明了将为可观察流的下一步生成的数组元素类型(类型
这听起来像是订阅处理程序中分配的严格类型安全是导致问题的原因。由于您有6个以上的可观察对象,因此它将结果参数默认为共享类型,该类型可能与您尝试分配的字段类型不匹配。
有几种方法可以解决这个问题。您可以在订阅处理程序中强制转换参数,也可以自己添加自己的类型。强制转换参数是快速而肮脏的解决方案,但它会导致您失去类型安全性。自己添加类型可以维护类型安全,但也可能意味着您最终会得到任意数量的工厂方法声明。将下面的放置在类型定义文件中(
有关此过程的详细说明,请参见的TypeScript文档页 Declaration Merging 。 编辑:看起来我使用的是旧版本的RxJS,自那以后结构有了一些变化。以下内容应更接近应与当前结构一起使用的类型声明:
我是以电流为基础的 forkJoin 类型声明。
就模块扩充而言,上面的代码修改了由绝对路径定义的模块的类型声明
|
|
|
2
5
感谢@MikeHill为我指明了正确的方向。最终对我有效的解决方案是添加一个打字机。d、 ts到angular cli生成的src文件夹。我相信您也可以在同一位置使用typings文件夹,但您需要更新您的tsconfig。应用程序。json文件,有关更多信息,请参阅本文。 https://github.com/angular/angular-cli/blob/6449a753641340d8fc19a752e1a1ced75f974efa/docs/documentation/1-x/stories/third-party-lib.md 打字。d、 使用forkJoin的7个参数的ts
|
|
|
3
4
从rxJs的6.5版开始,您可以使用值字典在forkJoin中放置任意数量的可观察对象 see the first example here
|
|
|
4
3
Fork连接可以嵌套到包含六个或更少参数的逻辑组中。以下各项应能正常工作(但尚未测试):
|
|
|
5
0
你确定6的限制吗? 这个例子在forkJoins中使用了10个可观察对象,看起来很有效
另外,我不明白
|