类型'any []'的参数不能分配给'PollModel'类型的参数。 'any []'类型中缺少属性'pollId'

时间:2018-06-07 08:34:44

标签: angular typescript

美好的一天。

  

类型'any []'的参数不能分配给类型的参数   'PollModel'。类型'any []'中缺少属性'pollId'。

HTML:

<button type="button" (click)="showAddModal('add',[])"> Create a poll</i></button>

组件:

showAddModal(action: string, poll: PollModel) {
            //show add modal method
            }

型号:

export class PollModel {
  pollId: string;
  pollName: string;
  pollDesc: string;
  pollOwnerId: string;
  startDate: Date;
  endDate: Date;
  createdDate: Date;
  modifiedDate: Date;
  pollType: string;
}

我正在尝试将空数组作为模型传递。但是我得到了上面的错误。我是棱角分明的新手。任何帮助将不胜感激。

3 个答案:

答案 0 :(得分:0)

你的组件脚本应该是

showAddModal(action: string, poll: PollModel[]) {
        //show add modal method
        }

答案 1 :(得分:0)

您的showAddModal函数需要两个参数首先是字符串,其次是{strong>类型为PollModel的对象 。

但是在问题中你传递数组作为第二个参数。这就是你得到这个错误的原因。

您应该更改方法语法或参数类型,如下所示。

<button type="button" (click)="showAddModal('add',[])"> Create a poll</i></button>

showAddModal(action: string, poll: PollModel[]) {
            //show add modal method
}

创建一个具有PollModel属性的对象,并将其作为参数传递。

<button type="button" (click)="showAddModal('add',{'id': 2})"> Create a poll</i></button>

showAddModal(action: string, poll: PollModel) {
            //show add modal method
}

希望这有帮助。

答案 2 :(得分:0)

方式1 如果你想在函数中使用Array,这将有效:

HTML:

<button type="button" (click)="showAddModal('add')"> Create a poll</i></button>

组件:

showAddModal(action: string, poll: PollModel[] = []) {
      //show add modal method
}

方式2 如果你想在函数中使用对象,这将有效:

HTML:

<button type="button" (click)="showAddModal('add')"> Create a poll</i></button>

组件:

showAddModal(action: string, poll: any = {}) {
      //show add modal method
}