больше не нужен:
опись версии 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.
Что мне здесь не хватает?