2017-04-10 3 views
8

In meinem Angular 2 app, ich habe folgenden Code:Angular 2: Zwei verschiedene Arten mit diesem Namen existieren

import { Observable } from 'rxjs/Rx'; 
import { Subscription } from '@angular-cli/ast-tools/node_modules/rxjs/Rx'; 
... 
private broadcastDataSubject: BehaviorSubject<Event>; 
... 
let sub: Subscription = this.broadcastDataSubject.asObservable().subject(event).subscribe(() => this.bla()); 

Problem in der letzten Reihe ist, Code nicht complile wegen:

"Typ 'Subskription' ist nicht dem Typ 'Subskription' zuweisbar. Zwei verschiedene Typen mit diesem Namen existieren, sie sind jedoch nicht miteinander verknüpft."

Ich habe den gleichen Code in meinem zweiten Projekt und es läuft ohne Problem.

Antwort

6

Das Problem war, dass ich 2 gleichen Import hatte:

import { Subscription } from '@angular-cli/ast-tools/node_modules/rxjs/Rx'; 

One in der Komponente und eine in Service.

+1

Ich war gerade dabei, diese Frage zu beantworten - es scheint auch seltsam, dass Sie RxJs von zwei verschiedenen Standorten importieren –

+0

Markieren Sie es als akzeptiert. – msanford

+3

Könnten Sie erklären, warum dies ein Problem ist? War das wirklich was? Ich habe identische Importanweisungen überall dort, wo dasselbe an mehreren Stellen benötigt wird. Ich kann sehen, wie das Importieren von zwei verschiedenen Installationen von Rx jedoch ein Problem sein würde. –

Verwandte Themen