私は、TypescriptでAngular 2を使ってアプリケーションを構築しています。私のセッターとゲッターにはどのような戻り値の型があるべきですか?ゲッターとセッターのObservablesのTypescript戻り型
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;
}
}
私はこれを試してみました:
set user$(user: User): void {}
get user$(): Observable<User> {}
しかし、これらのエラーを投げる:
エラーTS2380: '取得' と '設定' アクセサが同じ型を持っている必要があります。エラー
TS1095:「設定」アクセサには戻り値の型の注釈を付けることはできません。エラー
TS2380: 'get'と 'set'アクセサーは同じタイプでなければなりません。エラー
TS2322:タイプ 'User'は 'Observable'タイプに割り当てられません。
エラーTS2322:タイプ 'ユーザー' は
'観察可能な' 型に代入できません。タイプ 'User'に '_isScalar'プロパティがありません。
ありがとうございます!私はセッターを使わない他の同様の例を見た。 –