如何在组件中传递具有泛型 T 的 @input() 属性(@Input() ItemList: T[] = [];)

Posted

技术标签:

【中文标题】如何在组件中传递具有泛型 T 的 @input() 属性(@Input() ItemList: T[] = [];)【英文标题】:How to pass @input() property with generic type T in an component ( @Input() ItemList: T[] = [];) 【发布时间】:2020-04-02 14:49:04 【问题描述】:

我正在构建一个组件,它接受一个名为 itemList 的 @Input() 属性,如下所示,

@Input() ItemList: T[] = [];

有没有办法在 Angular 5 中将 T 类型的 @Input 属性从父组件传递给子组件?

任何示例都会有所帮助。由于我们使用的是 AOT ,所以它不是那么简单。

【问题讨论】:

这能回答你的问题吗? Declare a component with generic type 在发布这个问题之前,我已经检查了这个。不幸的是,它没有回答我的问题。 【参考方案1】:

尝试在类定义中定义泛型。

例子:

export class MyListComponent<T> implements OnInit 
   @Input() itemList: T[] = [];

   ngOnInit() 

【讨论】:

假设你的组件 MyListComponent 是一个子组件。所以你能添加代码吗,父组件将如何使用这个子组件,特别是传递一个 T 类型的 @Input 属性? html 中:&lt;my-list-component [itemList]="yourList"&gt;&lt;/my-list-component&gt;. 在 TS:@ViewChild(MyListComponent) listComponent: MyListComponent&lt;ItemList&gt;.

以上是关于如何在组件中传递具有泛型 T 的 @input() 属性(@Input() ItemList: T[] = [];)的主要内容,如果未能解决你的问题,请参考以下文章

Swift - 在具有可选参数的泛型函数中以 Nil 作为参数

C#如何将类型Type作为泛型T的参数T传递

将具有类型参数的类作为Java中泛型方法的类型参数传递

TypeScript 中具有泛型类型参数的泛型类型的替代方案

从多个组件获取受控输入时如何在React中最大化性能?

Angular 2 @Input - 如何从父组件绑定子组件的 ID 属性?