如何确保JSON对象结构使用Angular中的类型和接口



我的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>

我想验证路由器配置对象。如何使用interfacetype来验证?

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;
}

最新更新