больше не нужен:

опись версии 3.0.3.

Я создаю модель для меню навигации боковой панели, элемент может быть одного из двух типов, как описано ниже:

type SidebarItems = Array<SimpleSidebarItem | ComplexSidebarItem>;

abstract class SidebarItem {
    title: string;
}

class SimpleSidebarItem extends SidebarItem {
    url : string;
}

class ComplexSidebarItem extends SidebarItem {
    subItems: Array<{
        title: string;
        url : string;
    }>
}
Если это SimpleSidebarItem, у него должен быть URL, но нет подэлементов.Это ComplexSidebarItem, он не должен иметь URL, но должен иметь подэлементы.

Я не могу заставить это работать правильно - это не должно быть допустимым вводом, но это показывает хорошо:

const items: SidebarItems = [{title: '', url: '', subItems: [{title: '', url: ''}]}];

Вывод не работает, как ожидалось:

const items: SidebarItems = [{title: '', url: ''}, {title: '', subItems: [{title: '', url: ''}]}];
const shouldBeComplexSidebarItem = items[1];

тип mustBeComplexSidebarItem - SimpleSidebarItem | ComplexSidebarItem.

Что мне здесь не хватает?

Ответы на вопрос(1)

Ваш ответ на вопрос