我在我的打字稿以下過濾器1.5 + AngularJS 1項目:打字稿+角1 +過濾器:指定類型
module Filters{
export function percentage($filter:angular.IFilterService) {
return function(input: number, decimals: number): string{
return $filter('number')(input * 100, decimals) + '%';
}
}
var app = AppModule.getModule();
app.filter("percentage", Filters.percentage);
}
它想改變輸入的百分比值 - 我知道,我能做的它有不同的方式,但它不是關於過濾器本身 - 它將過濾器的類型分配給過濾器。
用下面的代碼,我在編譯過程中出現以下錯誤:
error TS2345: Argument of type 'number' is not assignable to parameter of type '{}[]'.
Property 'length' is missing in type 'Number'.
指向我這個在分型:
interface IFilterService {
/**
* Usage:
* $filter(name);
*
* @param name Name of the filter function to retrieve
*/
(name: string): IFilterFunc;
}
interface IFilterFunc {
<T>(array: T[], expression: string | IFilterPatternObject | IFilterPredicateFunc<T>, comparator?: IFilterComparatorFunc<T>|boolean): T[];
}
不過,我安靜不知道什麼是問題。有任何想法嗎?
也許這將有助於http://stackoverflow.com/a/33064403/99256。但是,我無法以某種方式重現您的問題。 –