假设我有这段代码:
export class ProductsListComponent {
@Output() onProductSelected: EventEmitter<Product>;
constructor() {
this.onProductSelected = new EventEmitter();
}
}
这是一些关于
EventEmitter
用法的例子。我不明白为什么我们首先要显式声明onProductSelect是一个携带产品实例的EventEmitter
,然后再用new EventEmitter()
实例化它。为什么不用new EventEmitter<Product>()
?我认为在C#中,我必须采用第二种方式,因为如果
EventEmitter
是泛型,否则它将无法编译。为什么TypeScript不要求这样做呢?//编辑: 进一步解释我的问题。 以下两者有何区别:
@Output() onProductSelected: EventEmitter<Product>;
this.onProductSelected = new EventEmitter();
并且
@Output() onProductSelected: EventEmitter;
this.onProductSelected = new EventEmitter();