正在检查设置存储库中的用户角色(typescript,aurelia)
我正在做一些授权的导航。我做了这样的事正在检查设置存储库中的用户角色(typescript,aurelia),typescript,authentication,npm,aurelia,Typescript,Authentication,Npm,Aurelia,我正在做一些授权的导航。我做了这样的事 run(navigationInstruction: NavigationInstruction, next: Next) : Promise<any> { let requiredRoles = navigationInstruction.getAllInstructions() .map(i => i.config.settings.roles)[0]; toastr
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'));
}
run(navigationInstruction: NavigationInstruction, next: Next) : Promise<any> {
let requiredRoles = navigationInstruction.getAllInstructions()
.map(i => i.config.settings.roles)[0] as string[];
...
}
run(导航说明:导航说明,下一步:下一步):承诺{
让requiredRoles=navigationInstruction.getAllInstructions()
.map(i=>i.config.settings.roles)[0];
toastr.success(“TEST1”);
让isUserInRole=requiredRoles?
requiredRoles.some(r=>r==this.userIdentity.role):true;
toastr.success('TEST2');//行它未执行
return isUserInRole?next():next.cancel(新重定向('users/login'));
}
所需角色-我已选中,它返回给我值
在我的可视化代码中,我有这样一条消息:
参数'r'隐式地有一个'any'类型,但是可以从用法推断出一个更好的类型。ts(7044)
我想你可以做的是将.roles][0]
转换为字符串(我从代码的外观猜)
run(导航说明:导航说明,下一步:下一步):承诺{
让requiredRoles=navigationInstruction.getAllInstructions()
.map(i=>i.config.settings.roles)[0]作为字符串;
...
}
编辑:如果角色是字符串数组,那么您的代码应该如下所示
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'));
}
run(navigationInstruction: NavigationInstruction, next: Next) : Promise<any> {
let requiredRoles = navigationInstruction.getAllInstructions()
.map(i => i.config.settings.roles)[0] as string[];
...
}
run(导航说明:导航说明,下一步:下一步):承诺{
让requiredRoles=navigationInstruction.getAllInstructions()
.map(i=>i.config.settings.roles)[0]作为字符串[];
...
}
这样做应该可以解决问题。更改后,我得到以下信息:
类型“string”上不存在属性“some”。ts(2339)