2014-05-10 2 views
0

구현을 here에서 typescript 으로 이식하려는 중입니다.이 방법을 사용할 수는 있지만에있는 다른 사람들과 함께 일반 fn으로 만들고 싶습니다._.indexOf의 일반 구현

var indexOfValue = _.indexOf; 

// using .mixin allows both wrapped and unwrapped calls: 
// _(array).indexOf(...) and _.indexOf(array, ...) 
_.mixin({ 

    // return the index of the first array element passing a test 
    indexOf: (array:_.List<any>, test:Function):any => { 
     // delegate to standard indexOf if the test isn't a function 
     if (!_.isFunction(test)) return indexOfValue(array, test); 
     // otherwise, look for the index 
     for (var x = 0; x < array.length; x++) { 
      if (test(array[x])) return x; 
     } 
     // not found, return fail value 
     return -1; 
    } 
}); 

답변

0

이 :

indexOf<T>(
      array: Array<T>, 
      value: T): number; 

     /** 
     * @see _.indexOf 
     **/ 
     indexOf<T>(
      array: List<T>, 
      value: T): number; 

etc... 

나는

var idx = _.indexOf<Type>(myList, (r) => { 
     return r.Name == k; 
}); 

유형이 지정되지 않은 구현 같은 아래의 구현을 사용하는 방법을 찾고 있어요이 지금

var idx = _.indexOf(myList, (r:Type) => { 
     return r.Name == k; 
}); 

처럼 사용 나는 썼다. 뒤로 :

export function indexOf<T>(items: T[], filter: (item: T) => boolean): number { 
    for (var i = 0; i < items.length; i++) { 
     if (filter(items[i])) { 
      return i; 
     } 
    } 
}