Я следующий фильтр в моей машинописи 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. Однако я не могу как-то воспроизвести вашу проблему. –