Eckige 2 - Typoskript: TS2322: Typ Abonnement ist nicht übertragbar auf Typ 'Beobachtbare<MouseEvent>'
Ich bin mit dem click-Richtlinie außerhalb von diesem plunk --> http://embed.plnkr.co/v7BMUv/
Meine TS-compiler wirft folgenden Fehler:
TS2322: Typ Abonnement ist nicht übertragbar auf Typ 'Beobachten'.
Eigenschaft '_isScalar" fehlt im Art 'Abonnement'.
TS2339 Eigenschaft 'Abmelden' existiert nicht auf Typ 'Beobachten'.
Meine tsconfig.json:
JS:
{
"compileOnSave": false,
"compilerOptions": {
"target": "es6",
"module": "system",
"moduleResolution": "node",
"sourceMap": true,
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"removeComments": false,
"suppressImplicitAnyIndexErrors": true,
"noImplicitAny": false,
"noEmitOnError": false
},
"exclude": [
"node_modules",
"wwwroot"
]
}
Den code verursacht Fehler:
JS:
ngOnInit() {
this.globalClick = Observable
.fromEvent(document, 'click')
.delay(1)
.do(() => {
this.listening = true;
}).subscribe((event:MouseEvent) => {
this.onGlobalClick(event);
});
}
Wie überwinde ich diesen Fehler?
- Dieser Fehler im Zusammenhang mit der statischen code-Analyse von Maschinenschrift. Fügen Sie den code, der diesen Fehler verursacht.
- Bearbeitet, um hinzufügen der code
Du musst angemeldet sein, um einen Kommentar abzugeben.
Der Fehler ist in
click-outside.directive.ts
.Observable.subscribe
gibt eineSubscription
(inngOnInit
), und nicht ein weiteresObservable
. Also, der Typ vonprivate globalClick
sollteSubscription
.Funktioniert es, wenn sich Typen werden entfernt, und als plunker nicht zeigen Art Fehler es hat funktioniert, aber beim kompilieren mit
tsc
es wird ein Fehler ausgegeben, wie Sie versuchen, ordnen Sie einSubscription
Objekt zu einemObservable
.