typescript - 检查设置存储库中的用户角色(打字稿,aurelia)
问题描述
我正在授权进行一些导航。我做了这样的事情
run(navigationInstruction: NavigationInstruction, next: Next) : Promise<any> {
let requiredRoles = navigationInstruction.getAllInstructions()
.map(i => i.config.settings.roles)[0];
toastr.success('TEST1');
let isUserInRole = requiredRoles?
requiredRoles.some(r => r === this.userIdentity.role) : true;
toastr.success('TEST2');//LINE IT`S NOT EXECUTED
return isUserInRole? next() : next.cancel(new Redirect('users/login'));
}
requiredRoles - 我已经检查过了,它返回了我的价值
成行r => r === this.userIdentity.role
在我的可视化代码中,我有如下消息:Parameter 'r' implicitly has an 'any' type, but a better type may be inferred from usage.ts(7044)
解决方案
我猜你可以做的是将字符串转换.roles)[0]
为字符串(我猜从你的代码的外观来看)
run(navigationInstruction: NavigationInstruction, next: Next) : Promise<any> {
let requiredRoles = navigationInstruction.getAllInstructions()
.map(i => i.config.settings.roles)[0] as string;
...
}
编辑:如果角色是一个字符串数组,那么你的代码应该是这样的
run(navigationInstruction: NavigationInstruction, next: Next) : Promise<any> {
let requiredRoles = navigationInstruction.getAllInstructions()
.map(i => i.config.settings.roles)[0] as string[];
...
}
这样做应该可以解决问题。
推荐阅读
- amazon-web-services - AWS CloudFormation 堆栈名称和资源名称之间的关系
- vba - 关闭主窗体时可以从所有子窗体中删除源对象吗?
- c# - 是否可以在 IEntityTypeConfiguration 中引用相关实体
配置方法? - php - Phpspreadsheet 转换后的文件应具有包含相同值的附加新列
- c++ - 如何找到当前硬件线程的 L3 缓存索引和 NUMA 节点索引
- python - 使用字典值创建新列
- gstreamer - 使用 gstreamer 获得确定性时间
- c# - 列表框项目初始化,但一旦选择了一个,我不知道如何重置没有选择任何项目的列表框
- javascript - 如何运行每 30 秒调用一次 axios 的函数
- java - 使用毕加索从 Firebase 向 CardView 显示用户图像不起作用