gpt4 book ai didi

angular - EventEmitter 和 EventEmitter 有什么区别?

转载 作者:太空狗 更新时间:2023-10-29 17:09:20 25 4
gpt4 key购买 nike

有时我们会遇到泛型变量应该被省略的情况。像这样:

@Component( ... )
class MyComponent {

@Output()
public cancel = new EventEmitter<undefined>();

private myFoo() {
this.cancel.emit(); // no need to pass any value
}
}

那么,问题:定义 EventEmitter 类型的更好方法是:
EventEmitter<undefined>EventEmitter<void> .

  • void更好,因为 .emit() 中没有参数称呼。
  • undefined更好.emit()是一样的.emit(undefined)

你怎么看?

最佳答案

根据 TypeScript 文档,void类型同时接受 undefinednull - 因此,以下代码是有效的:

@Component( ... )
class MyComponent {

@Output()
public cancel = new EventEmitter<void>();

private myFoo() {
this.cancel.emit();
this.cancel.emit(undefined);
this.cancel.emit(null);
}
}

EventEmitter<undefined> , 你只能通过 undefined或者没有争论,这在你的情况下可能更正确 - 也就是说,我看不到任何重大问题发生只是因为你通过了 null到一个你无论如何都不期望值的发射器,所以我很想选择 void因为它是较短的选项。

关于angular - EventEmitter<undefined> 和 EventEmitter<void> 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45464495/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com