私はLoginServiceにisLoggedIn
ブール型の値BehaviorSubject
を実装し、getterとsetter関数を使ってObservableとして値を取得する/変数を正しく設定することを試みていますBehaviorSubject。これは動作していますが、TSLintでは「型が割り当てられません」と「Dublicate識別子」について2つのエラーが発生します。 TSLintなしでそれを定義する正しい方法は何であろうかと不平を言います。getterとsetterをAngular 2で実装する方法
これは、上記のコードのストリップダウンバージョンです:あなたは活字体getter/setter
を使用する場合
@Injectable()
export class LoginService {
public isLoggedInSource = new BehaviorSubject<boolean>(false);
public isLoggedIn: Observable<boolean> = this.isLoggedInSource.asObservable(); // Duplicate identifier 'isLoggedIn'.
constructor(private http: Http) {}
set isLoggedIn(logged): void { // Duplicate identifier 'isLoggedIn'.
this.isLoggedInSource.next(logged);
}
get isLoggedIn(): Observable<boolean> { // Duplicate identifier 'isLoggedIn'.
return this.isLoggedInSource.asObservable();
}
logout() {
this.isLoggedIn = false; // Type 'boolean' is not assignable to type 'Observable<boolean>'.
}
login(body) {
return this.http.post('/login', body)
.map(res => {
if (res.token) {
this.isLoggedIn = true; // Type 'boolean' is not assignable to type 'Observable<boolean>'.
}
return res;
})
.catch(err => Observable.throw(err););
}
}
プロパティとgetter /セッターのために異なる名前を使用します。 – toskv
...パブリックプロパティのゲッター/セッターを持っていることには、実際にはポイントがありません。あなたのクラスのユーザーはとにかく周りを回ることができます。 – toskv