我正在审查一段代码,并且对开发人员为何以这种方式实现的方式感到有些困惑。在类中,它们在类的顶部初始化两个变量。然后在构造函数中重复它。
以下是相关进口商品:
import {Subject, Observable} from 'rxjs';
以下是代码:
subject: Subject<Boolean>; // Observable Boolean sources
subject$: Observable<Boolean>; // Observable Boolean streams
private _menuWidth: number = 300; // Default menu width
constructor() {
this.subject = new Subject<Boolean>();
this.subject$ = this.subject.asObservable();
}
我无法访问开发人员,所以想知道这对任何人都有意义。
我是Angular的新手,可能会遗漏一些东西。
答案 0 :(得分:1)
在课程的顶部,他们没有初始化这些属性。他们刚刚定义了给定类型的这些属性。但没有任何执行。
编译期间的Typescript基本上剥离了类型。所以它实际上看起来像这样:
_menuWidth = 300; // Default menu width
constructor() {
this.subject = new Subject<Boolean>();
this.subject$ = this.subject.asObservable();
}
例如,Subject
的构造函数仅在构造函数中执行。不是说该变量的类型为Subject
。