我想在我的控制器中使用我的一个角度滤镜作为函数。我在这里找到了答案:How to use a filter in a controler
事实上我使用了最后一个答案,因为它提供了我所需要的。我的JS看起来像这样:
var MyFunc = $filter('MyGreatFilter');
var resp = MyFunc(6);
它工作正常。但是,我使用的是Typescript,我无法弄清楚如何给它正确的类型。显然没有任何类型我得到错误:
error TS2349: Cannot evoke an expression whose type lacks a call signature
当我将此类型添加到控制器的界面时:
MyFunc(val:number): string;
我收到错误,我不明白:
error TS2322: Type {} is not assignable to type '(val: number) => string'
该函数将一个数字作为参数并返回一个字符串。 关于如何键入过滤器函数MyFunc的任何想法?
感谢。
答案 0 :(得分:1)
我在代码的另一部分找到了答案,我正在研究其他人(比我聪明得多)写道。您需要在过滤器上方添加一个Typescript接口:
ArrayBlockingQueue
然后以与上面显示的略有不同的方式调用该函数:
interface IFilterMyGreatFilterName {
(value: number): string;
}
function MyGreatFilter () {
return function (item:number) {
// Filter stuff and return a string
};
}