【发布时间】:2019-06-26 16:52:29
【问题描述】:
当我有这样的课时:
import {Subject} from "rxjs";
export class MyClass {
protected subject: Subject<string>;
}
在 TypeScript 中,在构造函数中初始化成员 subject 是否更好,例如:
export class MyClass {
protected subject: Subject<string>;
constructor() {
this.subject = new Subject<string>();
}
}
或在类体内内联,如:
export class MyClass {
protected subject: Subject<string> = new Subject<string>();
}
注意
在这种情况下,内联初始化显然只适用于像Subject 这样的导入类,而不适用于只存在于构造函数中的注入类。
编辑
Angular Style Guide 不包含此部分。
【问题讨论】:
-
不要认为有任何最佳实践,当初始值不依赖于ctor参数时,我更喜欢内联..
-
是的,我也是。小班。但是,当混合两种技术时,有时会感觉不一致。并且根据构造函数参数列表在两者之间切换,也不是那么顺利。
-
它们是一样的。我通常内联初始化所有内容,除非它背后有更多逻辑。所以我可能不会
protected subject: BehaviorSubject<string> = new BehaviorSubject<string>(this.getDefaultValueOfSubject());
标签: angular typescript rxjs observable