【问题标题】:angular rxjs subscriptions [duplicate]角度rxjs订阅[重复]
【发布时间】:2021-10-17 18:59:06
【问题描述】:

我在 Angular 中这样声明订阅:

counterSubscription: Subscription

它给了我这个错误:

属性“counterSubscription”没有初始化器,也没有在构造函数中明确赋值。

请问Subscription 的初始值是多少?

【问题讨论】:

  • undefined?还是null
  • 最后加一个分号。它应该给出一个错误。
  • counterSubscription!: Subscription; 你可以使用它并在 ngOnInit() 中初始化订阅。我建议直接使用counterSubscription = new Subscription();,而不是在 ngOnInit() 中初始化它。这可以减少您的代码。

标签: angular typescript rxjs subscription


【解决方案1】:

如果您在 Angular 生命周期挂钩中初始化订阅,例如 ngOnInit,您可以使用 Definite Assignment Assertion Operator ! 通知 TypeScript 该变量将被初始化。

counterSubscription!: Subscription;

【讨论】:

    【解决方案2】:

    您还可以将strictPropertyInitialization: false 规则添加到您的tsconfig.json 以禁用此行为。

    【讨论】: