Ich baue eine App mit Angular 2 mit Typescript. Welcher Rückgabetyp sollte mein Setter und Getter haben?Typescript-Rückgabetyp für Observables in Getter und Setter
import { Injectable } from '@angular/core';
import { Http, Response } from '@angular/http';
import { Events, SqlStorage, Storage } from 'ionic-angular';
import { Subject } from 'rxjs/Subject';
export interface User {
name?: string,
email?: string,
gender?: string,
picture?: Object
}
export interface DataStore {
user: User
}
@Injectable()
export class UserService {
private storage: Storage;
private _user$: Subject<User>;
private dataStore: DataStore;
constructor(
private http: Http
) {
this.storage = new Storage(SqlStorage);
this._user$ = new Subject();
this.dataStore = { user: {} };
}
set user$(user: User) {
this.storage.set('user', JSON.stringify(user));
this.dataStore.user = user;
this._user$.next(this.dataStore.user);
}
get user$() {
const subject = this._user$;
const source = subject.asObservable();
return source;
}
}
Ich habe dies versucht:
set user$(user: User): void {}
get user$(): Observable<User> {}
Aber diese Fehler werfen:
TS2380 Fehler: 'get' und 'set' Accessor müssen denselben Typ haben. Fehler
TS1095: Ein 'Set' Accessor kann keine Rückgabetyp-Annotation haben. Fehler
TS2380: 'Get' und 'Set' Accessor müssen den gleichen Typ haben. Fehler
TS2322: Typ 'Benutzer' kann nicht dem Typ 'Observable' zugewiesen werden.
Fehler TS2322: Typ 'User' ist nicht belegbar
'beobachtbar' eingeben. Die Eigenschaft '_isScalar' fehlt im Typ 'Benutzer'.
Danke, das macht Sinn! Ich habe andere ähnliche Beispiele gesehen, die keine Setter verwenden. –