Angular 'array' 类型的参数不能分配给 'string' 类型的参数
Angular Argument of type 'array' is not assignable to parameter of type 'string'
我有 json:
public example=[{
array:[item1, item2,]
},
{
array:[item1, item2,]
}]
文件html:
<div *ngFor="let item of example">
<div *ngIf="check(item.array)"> ...</div>
</div>
但是在ngOnInit()里面调用函数检查,报错
check(...request: string[]){
return this._RolesService.checkRoles(request);
}
ngOnInit(): void {
let req:string[] = ['string1'];
if(this.check(req)){}
}
性别 html 没问题,所以当我在 ngOnInit 中调用函数 check() 时,出现错误:'string[]' 类型的参数不可分配给 'string' 类型的参数。
能否分享一下this._RolesService.checkRoles(request)
的代码?我认为这个函数接受一个 string
作为参数,但是你传递的是 ['string1']
这是一个字符串数组。这就是引发错误的原因。
根据您提供的当前信息,我认为这是问题所在。
更正的解决方案:
感谢此解决方案下的评论,解决问题的方法之一是在调用方法时使用扩展运算符:
this.check(...req)
您应该将代码更改为:
let req:string[] = ['string1'];
if(this.check(...req)){}
或者
let req = 'string1';
if(this.check(req)){}
我有 json:
public example=[{
array:[item1, item2,]
},
{
array:[item1, item2,]
}]
文件html:
<div *ngFor="let item of example">
<div *ngIf="check(item.array)"> ...</div>
</div>
但是在ngOnInit()里面调用函数检查,报错
check(...request: string[]){
return this._RolesService.checkRoles(request);
}
ngOnInit(): void {
let req:string[] = ['string1'];
if(this.check(req)){}
}
性别 html 没问题,所以当我在 ngOnInit 中调用函数 check() 时,出现错误:'string[]' 类型的参数不可分配给 'string' 类型的参数。
能否分享一下this._RolesService.checkRoles(request)
的代码?我认为这个函数接受一个 string
作为参数,但是你传递的是 ['string1']
这是一个字符串数组。这就是引发错误的原因。
根据您提供的当前信息,我认为这是问题所在。
更正的解决方案: 感谢此解决方案下的评论,解决问题的方法之一是在调用方法时使用扩展运算符:
this.check(...req)
您应该将代码更改为:
let req:string[] = ['string1'];
if(this.check(...req)){}
或者
let req = 'string1';
if(this.check(req)){}