【问题标题】:Angular ng test throwing errors on the RxJS Operator [closed]Angular ng 测试在 RxJS 运算符上抛出错误 [关闭]
【发布时间】:2026-02-12 05:10:01
【问题描述】:

我们正在尝试在 Angular 应用中运行 ng test,但出现以下错误。

最初,我们在 switchMap 上遇到了错误,所以为了解决我们添加了管道,然后现在 ng 测试在 first() 上抛出错误。

但是 Angular 构建并没有抛出任何错误。但是这些错误只会出现在ng test 上,所以我们必须每次都修复/找到解决这些错误的方法,我认为这是不正确的。

您对克服这些错误有什么想法或建议吗?

更新:每次我们都必须调整代码来运行 ng 测试。 Angular 中是否有任何配置,这样我们就不必更改生产代码来让“ng test”快乐?

ERROR in src/app/project/design/design-summary/design-summary.component.ts:94:33 - error TS2339: Property 'first' does not exist on type 'EventEmitter<Design>'.
94     this.gojsService.design$.first().subscribe((design: Design) => {
                                   ~~~~~
src/app/project/design/design.component.ts:328:42 - error TS2339: Property 'first' does not exist on type 'EventEmitter<Version>'.
328     this.gojsService.changeDesign$.first().pipe(switchMap((version: Version) => {

【问题讨论】:

    标签: angular unit-testing jasmine karma-jasmine gojs


    【解决方案1】:

    我相信对您来说最好的选择是从非常旧的版本过渡到新的 rxjs 版本。如果您从项目中删除 rxjs-compat 包,编译也会显示所有错误。 在这种情况下,将 first() 移动到 .pipe( 应该可以解决问题

    this.gojsService.changeDesign$.pipe(
      first(),
      switchMap((version: Version) => {
    ...
    

    【讨论】: