Тип «Подписка» не может быть назначен типу «Подписка» - PullRequest
0 голосов
/ 10 марта 2019

Я получаю эту ошибку при создании моего проекта JHipster Angular. Это происходит после команды yarn start

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.

Но раньше это работало без проблем. Я понятия не имею, почему это происходит.

Ответы [ 2 ]

0 голосов
/ 11 марта 2019

Чтобы не отвечать на ваш вопрос напрямую, а вместо того, чтобы отслеживать все ваши подписки с объектами подписки, просто используйте одну тему и продолжайте до. Это рекомендуемый способ управления подписками rxjs в Angular.

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 голосов
/ 11 марта 2019

Попробуйте изменить эти строки

import { Subscription } from 'rxjs/Subscription';
import { Observable } from 'rxjs/Observable';

к этому

import { Subscription, Observable } from 'rxjs';

...