У меня есть следующий тип Widget
:
enum WidgetType {
Page = "Page",
Tab = "Tab",
Value = "Value",
Chart = "Chart"
}
type PageWidget = {
type: WidgetType.Page;
children: Widget[];
};
type TabWidget = {
type: WidgetType.Tab;
children: Widget[];
};
type ValueWidget = {
type: WidgetType.Value;
};
type ChartWidget = {
type: WidgetType.Chart;
};
type Widget = PageWidget | TabWidget | ValueWidget | ChartWidget;
Исходя из этого, я хочу создать вызов нового типа WidgetWithChildren
, и он должен быть объединением виджетов со свойством children
(в данном случае это объединение PageWidget
и TabWidget
), но я хочу сделать его динамическим, поэтому при появлении нового Тип виджета с детьми будет автоматически в WidgetWithChildren
.
Я хочу что-то вроде:
type WidgetWithChildren = Pick<Widget, "take widgets children">;
Возможно ли это в TypeScript? Как я могу это сделать?