我的angular项目中有几个模块和组件。我创建了一个路由器配置文件,以方便处理路由,它包含如下JSON数据。
router.config.ts
{
branch:{
list:'/app/branch/list',
add:'/app/branch/add'
},
books:{
publish:'/app/books/publish',
manage:'/app/books/manage'
}
}
因此,基于配置,路由将很容易。
<a routerLink="branch.list">
Branch list
</a>
<a routerLink="books.publish">
Publish book
</a>
我想验证路由器配置对象。如何使用interface
和type
来验证?
interface Route {
[key: string]:
{ [key: string]: string }
}
const Routes :Route[] = [
{
branch:{
list:'/app/branch/list',
add:'/app/branch/add'
},
books:{
publish:'/app/books/publish',
manage:'/app/books/manage'
}
}
];
定义路由器项目如下:
interface RouterItem {
list: string;
add: string;
}
这个函数用于实例验证:
function isInstanceOfRouterItem(obj: any){
return 'list' in obj && 'add' in obj;
}