gpt4 book ai didi

javascript - Typescript 和 Angular 过滤器

转载 作者:行者123 更新时间:2023-12-03 07:19:16 25 4
gpt4 key购买 nike

我想使用我的 Angular 过滤器之一作为我的 Controller 中的函数。我在这里找到了答案: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

当我将此类型添加到 Controller 的界面时:

MyFunc(val:number): string;

我收到一个我不明白的错误:

error TS2322: Type {} is not assignable to type '(val: number) => string'

该函数接受一个数字作为参数并返回一个字符串。关于如何键入过滤器函数 MyFunc 有什么想法吗?

谢谢。

最佳答案

我在我正在编写的其他人(比我聪明得多)编写的代码的另一部分中找到了答案。您需要在过滤器上方添加 Typescript 接口(interface):

interface IFilterMyGreatFilterName {
(value: number): string;
}

function MyGreatFilter () {
return function (item:number) {
// Filter stuff and return a string
};
}

然后以与上面所示稍有不同的方式调用该函数:

var resp = $filter<IFilterMyGreatFilterName>('MyGreatFilter')(aNumValue);

关于javascript - Typescript 和 Angular 过滤器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36279946/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com