首页 > 解决方案 > RXJS 运算符上的 Typescript 2345

问题描述

最近,我在我的代码库中看到了很多 typescript transpile 错误。我不确定它什么时候开始,但主要的是,代码仍然运行良好。应用程序的逻辑绝对没有变化。我在代码库中观察到的最奇特的事情之一就是这个特殊的例子。

 combineLatest(of(1), of(2))
   .subscribe(([a,b]: [number, number]) => {
     console.log(a, b);
   });

这会引发 TS2345 错误。它单独说明了一些事情

[a,b] of type [number, number] => null is not assignable to type value of type [Observable<number>, Observable<number>] => null

为什么这么说?当我记录 a 和 b 时,我看到的只是 1 和 2。我没有看到 Observable 的实例。

如果有帮助,我还有一个与我的 Web 应用程序链接的 Angular 库 npm。

运行 ng 版本采购:

*Angular CLI: 8.2.1
Node: 10.15.0
OS: darwin x64
Angular: 8.2.1
... animations, cli, common, compiler, compiler-cli, core, forms
... language-service, platform-browser, platform-browser-dynamic
... router
Package                           Version
-----------------------------------------------------------
@angular-devkit/architect         0.802.1
@angular-devkit/build-angular     0.802.1
@angular-devkit/build-optimizer   0.802.1
@angular-devkit/build-webpack     0.802.1
@angular-devkit/core              8.2.1
@angular-devkit/schematics        8.2.1
@angular/cdk                      8.0.2
@angular/http                     7.2.15
@ngtools/webpack                  8.2.1
@nguniversal/express-engine       8.1.1
@schematics/angular               8.2.1
@schematics/update                0.802.1
rxjs                              6.5.2
typescript                        3.5.3
webpack                           4.38.0*

标签: angulartypescriptrxjs

解决方案


推荐阅读