【问题标题】:Why aren't the angular EventEmitter subscribe method parameters strongly typed?为什么角度 EventEmitter 订阅方法参数不是强类型的?
【发布时间】:2019-04-10 15:42:25
【问题描述】:

为什么 Angular EventEmitter 订阅方法参数不是强类型的?

https://github.com/angular/angular/blob/a14dc2d7a4821a19f20a9547053a5734798f541e/packages/core/src/event_emitter.ts#L102

subscribe(generatorOrNext?: any, error?: any, complete?: any): Subscription {
  ...
}

而不是类似的东西

subscribe(generator: DefForGenerator): Subscription;
subscribe(next?: (value: T) => void, error?: (error: any) => void, complete?: () => void): Subscription;
subscribe(generatorOrNext?: any, error?: any, complete?: any): Subscription {
  ...
}

【问题讨论】:

  • 它是强类型的吗?所有的角度/打字稿都是
  • 不是因为any
  • 那是订阅,不是事件发射器
  • 您可以在此处跟踪相关问题:github.com/angular/angular/issues/29016。这不是一个真正的 SO 问题,只有相关的开发人员可以告诉你他们为什么选择它。
  • 即EventEmitter的订阅方法

标签: angular


【解决方案1】:

@jonrsharpe 的 comment 将您引向正确的方向。

根据这个comment,您不应该使用EventEmitter.subscribe() / 它仅设计为由@Output() 元数据使用。因此any 的输入可能是开发人员不鼓励使用该方法。

【讨论】:

    猜你喜欢
    • 2020-02-11
    • 2016-02-19
    • 2018-12-20
    • 2019-03-01
    • 2018-09-29
    • 2021-08-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多