我有以下代码:
function parseValueFromComplexType(complexType, item) {
return item[complexType];
}
为了绑定值complextype,我使用angular.bind
let parseValueFromComplexTypeWithValue = angular.bind('', parseValueFromComplexType , config.complexType);
val.values = val.values.map(parseValueFromComplexTypeWithValue);
现在打字稿抱怨:
错误TS2345:“函数”类型的参数不能分配给类型'的参数(值:any,index:number,array:any [])=> {}”。
错误是什么意思,我怎么能摆脱它?
答案 0 :(得分:1)
map
函数接受具有三个参数的函数,在此结构中:
callbackfn: (value: T, index: number, array: T[]) => U
角度的bind
函数返回一个简单的Function
类型:
bind(context: any, fn: Function, ...args: any[]): Function;
错误说:您不能只在Function
放置callbackfn: (value: T, index: number, array: T[]) => U
。
这里的另一个问题是你试图以非常奇怪的方式使用角度bind
...如果你想保留this
,只需使用箭头功能。
也许这样的事情(更简单):
var complexType = 'str';
val.values = val.values.map((item, index, array) => item[complexType]);