Массив типизирования интерфейса с несколькими возможными типами объектов - PullRequest
1 голос
/ 07 апреля 2020

У меня есть интерфейс, который содержит свойство, которое представляет собой массив, содержащий 2 различных возможных типа объектов:

<Type>FormerComponent and FormerGenericComponent

Вот мои интерфейсы

interface FormerConfigColumn {
    container: ViewContainerRef
    components?: Type<FormerComponent>[]|FormerGenericComponent[];
}

interface FormerGenericComponent {
    component: Type<FormerComponent>;
}

Выше не работает так, как я хотел бы. Я думаю, что выше определяет массив, содержащий только Type<FormerComponent> s или только FormerGenericComponent s

Я хочу, чтобы FormerConfigColumn.components содержал массив объектов, и указанные объекты могут либо быть Type<FormerComponent> или FormerGenericComponent.

Как я могу это сделать?

Спасибо!

1 Ответ

3 голосов
/ 07 апреля 2020
interface FormerConfigColumn {
    container: ViewContainerRef
    components?: (FormerComponent | FormerGenericComponent)[];
}

Это определит components как необязательное свойство FormerConfigColumn, которое содержит массив, который может быть заполнен FormerComponent или FormerGenericComponent.

Если вы хотите, чтобы components удерживайте массив FormerComponent или FormerGenericComponent, но не оба одновременно, затем используйте:

    components?: (FormerComponent[] | FormerGenericComponent[]);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...