如何将类型从父组件传递给子组件?

时间:2020-07-16 10:02:07

标签: angular typescript generics angular-material

我正在尝试创建一个将使用MatTable组件的抽象表组件。抽象表将用作子元素,我想将自定义接口(行为类似于类型)从父级传递给该子级。

到目前为止,我决定通过这样的一个对象传递数据和表设置:

//inside the parent component

<app-abstract-table [tableProperties]="tableProperties"></app-abstract-table>

tableProperties对象是基于以下接口创建的:

export interface TableProperties {
    columnsWithCaptions?: any[];
    dataSource?: any[];
}

app-abstract-table中,我有一个用于保存表数据的字段:
dataSource: MatTableDataSource<Fruit> = new MatTableDataSource<Fruit>();
其通用类型为Fruit

我想以某种方式从父级传递此类型,以便整个抽象表组件将完全可重用。这是完全可以实现的吗?还是应该将any用作通用名称,而忘了这个问题?

1 个答案:

答案 0 :(得分:0)

您的表属性可以定义为:

export interface TableProperties<T> {
  columnWithCaptions?: any[];
  dataSource?: T[];
}