【发布时间】:2018-09-28 11:09:38
【问题描述】:
我正在使用 TypeScript 2.8.1 处理 Angular 5 中的菜单。
我想向验证传入配置添加类型,但是当我添加不正确的属性(例如,不需要的数据)时没有任何反应。
为什么 TS 不显示错误?
示例代码:
type MenuElement = MenuGroup | MenuItem;
interface MenuGroup {
id: number;
name: string;
icon?: string;
items: MenuItem[];
}
interface MenuItem {
id: number;
name: string;
url: string;
}
const menuData = [
{
id: 1,
name: 'category',
icon: 'star',
items: [
{
id: 1,
name: 'subcategoryOne',
url: 'urlOne'
},
{
id: 2,
name: 'subcategoryTwo',
url: 'urlTwo'
}
]
},
{
id: 2,
name: 'categoryTwo',
url: 'urlThree',
undesirableData: 'text' // undesirable data
}
];
export class MainComponent {
public appMenu: Array<MenuElement>;
constructor() {
this.appMenu = this.createMenu(menuData);
}
createMenu(menu: Array<MenuElement>) {
return menu;
}
}
【问题讨论】:
标签: typescript types typescript2.8