Sto provando a creare definizioni di dattiloscritto per un progetto Angular 2 su cui sto lavorando affinché possa essere una libreria esportabile.Errori del dattiloscritto quando si imposta la dichiarazione su TRUE
Ho diversi servizi di installazione che restituiscono le richieste HTTP a tutti i componenti del tutto simile a quanto segue:
public create(user:User) {
return this.http.post(this._apiUrls.create,
JSON.stringify(user), {
headers: this.apiConfig.getApiHeaders()
});
}
che ho poi chiamata da un qualcosa di componenti del genere:
Session.create(user).subscribe((res:Response) => {
this.user = res.json().user
});
Questa tutte le opere va bene finché non avanzo 'dichiarazione' su true nel file tsconfig in modo che possa creare file di definizione del dattiloscritto. Comincio a ottenere i seguenti errori per molti dei miei servizi:
error TS4053: Return type of public method from exported class has or is using name 'Observable' from external module "node_modules/rxjs/Observable" but cannot be named.
Capisco la maggior parte del problema, ma non so una soluzione. Se importare Observable nel servizio, allora il linter del dattiloscritto genererà errori perché tecnicamente non viene usato in quel file.
Provenendo da Angular 1 questo era un paradigma simile che abbiamo preso in tutte le nostre app per rompere il nostro codice a parte, ma forse ho bisogno di cambiare l'approccio in Angular 2? Ho esaminato molti altri esempi di Angular 2 e l'hanno fatto tutti allo stesso modo.
Alcuni esempi sarebbe stato bello – DarkNeuron
Non ho capito la vostra soluzione. Puoi spiegarmi più chiaramente su cosa fare? –
L'autore ha affermato che se importano "Osservabile" esplicitamente (cioè "importa {Osservabile} da" node_modules/rxjs/Observable "'), allora questo risolverà l'errore. Quindi questa è la soluzione. La cosa che ha reso problematica questa soluzione è che il loro linter considerava "Osservabile" inutilizzato. La soluzione per * that * era effettivamente usare 'Observable' come tipo di ritorno (ad esempio' public create (user: User): Observable'). Ho aggiornato la mia risposta per chiarire. –