首页 > 解决方案 > 成员应在所有私有实例之前声明

问题描述

private userSubject$: BehaviorSubject<UserModel> = new BehaviorSubject<UserModel>(null);
userChanged$: Observable<UserModel> = this.userSubject$.asObservable();

它说:

成员 userChanged$ 应该在所有私有实例字段定义之前声明。eslint@typescript-eslint/member-ordering

我喜欢这个规则。但是如何在不禁用此规则的情况下使用上述代码?

如果我要更改订单,那么它会说:

属性“userSubject$”在其初始化之前使用。

标签: angulartypescriptionic-frameworkeslint

解决方案


您可以将初始化移动到构造函数中:

userChanged$: Observable<UserModel>;

private userSubject$: BehaviorSubject<UserModel>;

constructor() {
    this.userSubject$ = new BehaviorSubject<UserModel>(null);
    this.userChanged$ = this.userSubject$.asObservable();
}

推荐阅读