【发布时间】:2018-02-03 10:57:47
【问题描述】:
假设我有这个代码:
export class ProductsListComponent {
@Output() onProductSelected: EventEmitter<Product>;
constructor() {
this.onProductSelected = new EventEmitter();
}
}
这是EventEmitter 用法的一些示例。我不明白为什么我们首先声明 onProductSelect 明确声明它是带有 Product 实例的 EventEmitter,然后我们只用 new EventEmitter() 实例化它。为什么不new EventEmitter<Product>()?
我认为在 C# 中我必须采用第二种方式,否则如果 EventEmitter 是通用的,它将无法编译。
为什么 TypeScript 不需要这个?
//编辑:
进一步澄清我的问题。 有什么区别:
@Output() onProductSelected: EventEmitter<Product>;
this.onProductSelected = new EventEmitter();
和
@Output() onProductSelected: EventEmitter;
this.onProductSelected = new EventEmitter();
【问题讨论】:
-
不,不是。另一个问题是关于如何创建一个泛型类的实例,其中一个泛型类型在这种实例中并不真正需要。我的问题是关于指定和不指定泛型类型的实例化差异。
标签: javascript angular typescript generics