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)){}