打字稿:angular.bind和map的问题

时间:2015-08-30 18:20:24

标签: angularjs typescript

我有以下代码:

  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 [])=> {}”。

错误是什么意思,我怎么能摆脱它?

1 个答案:

答案 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]);