角度2型脚本错误 - TS2322

时间:2018-04-29 21:29:30

标签: angular

我正在开发Angular 2 MEAN app项目。我在我的代码中遇到了以下问题。

  

错误TS2322:输入' {' id':string; ' bowlingteam':string;   ' battingteam':string; }'不能分配给任何[]'类型   财产包括'类型' {' id':字符串; ' bowlingteam&#39 ;:   串; ' battingteam':string; }'

我已将类变量声明为

startMatchInput : Array<any> = [{
       'id' : '',
       'bowlingteam' : '',
       'battingteam' : ''

  }];

我使用在类中声明的函数放置的每个对象。基本上我正在用this.startMatchInput变量中提到的键形成一个单独的对象。

以下是函数中的代码。

function x(){
  var startMatchmasterObj = {
                'id' : '',
                'bowlingteam' : '',
                'battingteam' : ''

          };

startMatchmasterObj.id =  "943974937947";
               startMatchmasterObj.bowlingteam =  "098idsjvlnladfsj";
               startMatchmasterObj.battingteam =  "jzvlzc9a7dfs90as";

 this.startMatchInput = startMatchmasterObj; // here error is coming
}

我正在为我的类变量分配函数中的局部变量,以便在需要时从外部访问它。但面临上述错误。

任何帮助或指示都将受到高度赞赏。我是angular 2以及MEAN stack dev的新手。

...谢谢

1 个答案:

答案 0 :(得分:1)

startMatchInput的类型为any[]startMatchmasterObj是一个对象而不是一个数组,因此它们的类型是不兼容的,因此是错误的。因此,您可以将startMatchInput的类型更改为any,也可以将startMatchmasterObj包装在数组中以进行分配。

startMatchInput: any = {    // declare it as any, rather than any[]
   'id' : '',
   'bowlingteam' : '',
   'battingteam' : ''
};    

// or...

this.startMatchInput = [startMatchMasterObj];    // wrap in an array

我猜你最好的选择取决于你希望如何使用它。