首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >类型'Subscription‘不能赋值给类型'Subscription’

类型'Subscription‘不能赋值给类型'Subscription’
EN

Stack Overflow用户
提问于 2019-03-11 04:04:26
回答 2查看 639关注 0票数 0

在构建我的JHipster Angular项目时,我得到了这个错误。它发生在命令yarn start之后

代码语言:javascript
复制
import { Component, OnInit, OnDestroy } from '@angular/core';
import { ActivatedRoute, Router } from '@angular/router';
import { HttpResponse, HttpErrorResponse } from '@angular/common/http';
import { Subscription } from 'rxjs/Subscription';
import { JhiEventManager, JhiParseLinks, JhiAlertService } from 'ng-jhipster';
import { ITEMS_PER_PAGE, Principal } from '../../shared';
import { Observable } from 'rxjs/Observable';
....
private subscription: Subscription;
    private eventSubscriber: Subscription;
...
 ngOnInit() {
        this.subscription = this.route.params.subscribe((params) => {
            this.load(params['id']);
        });
}


> TS90010: Type 'Subscription' is not assignable to type 'Subscription'.
> Two different types with this name exist, but they are unrelated.

但它之前工作正常,没有问题。我不知道为什么会这样。

EN

回答 2

Stack Overflow用户

发布于 2019-03-11 05:00:07

尝试更改这些行

代码语言:javascript
复制
import { Subscription } from 'rxjs/Subscription';
import { Observable } from 'rxjs/Observable';

到这个

import { Subscription, Observable } from 'rxjs';

票数 0
EN

Stack Overflow用户

发布于 2019-03-11 09:23:48

不是直接回答你的问题,而是用订阅对象来跟踪你所有的订阅,只需使用一个主题,并使用直到。这是在Angular中管理rxjs订阅的推荐方式。

代码语言:javascript
复制
finalise = new Subject<void>();

this.route.params.subscribe((params) => {
  this.load(params['id']);
}).pipe(takeUntil(this.finalise)); // No need to unsubscribe if finalise emits.

ngOnDestroy() {
  this.finalise.next();
  this.finalise.complete();
}

现在您只需要一个对象来管理组件中的所有订阅。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55091875

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档