我正在开发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的新手。
...谢谢
答案 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
我猜你最好的选择取决于你希望如何使用它。