Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Typescript 返回自身的函数的返回类型是什么?_Typescript_Visual Studio Code_Eslint_Typescript Eslint - Fatal编程技术网

Typescript 返回自身的函数的返回类型是什么?

Typescript 返回自身的函数的返回类型是什么?,typescript,visual-studio-code,eslint,typescript-eslint,Typescript,Visual Studio Code,Eslint,Typescript Eslint,问候,我是打字新手 我曾经在JS中以这种方式使用setInterval(),这样我就可以立即调用setInterval()的回调函数,而不是在第一次运行之前等待10秒。然而,当我现在移动到TS时,我不知道将什么放在这里作为它的返回类型。我尝试使用any,比如()=>any,但似乎它可能会打破@typescript-eslint的规则:在function.eslint上缺少返回类型(@typescript-eslint/explicit function-return-type) 谁能给我一些建议

问候,我是打字新手

我曾经在JS中以这种方式使用
setInterval()
,这样我就可以立即调用
setInterval()
的回调函数,而不是在第一次运行之前等待10秒。然而,当我现在移动到TS时,我不知道将什么放在这里作为它的返回类型。我尝试使用
any
,比如
()=>any
,但似乎它可能会打破@typescript-eslint的规则:
在function.eslint上缺少返回类型(@typescript-eslint/explicit function-return-type)

谁能给我一些建议?提前谢谢


p、 我知道我使用的
setInterval()
的方式可能不好,但我只是想摆脱它。

我会避免任何在所有情况下强制显式类型的lint规则,或者至少我可能会在这个用例中禁用它

如果函数保持原样,Ts将正确推断返回类型

如果要详细说明,可以使用递归类型:

setInterval(
    (function func() /* :() => ??? */ {
        console.log(`I will be invoked immediately!`);

        return func;
    })(),
    10000
);

我将避免任何在所有情况下强制显式类型的lint规则,或者至少在这个用例中我可能会禁用它

如果函数保持原样,Ts将正确推断返回类型

如果要详细说明,可以使用递归类型:

setInterval(
    (function func() /* :() => ??? */ {
        console.log(`I will be invoked immediately!`);

        return func;
    })(),
    10000
);

您可以完全按照TS的定义来定义它:
typeof func

type Fn = () => Fn;
setInterval(
    (function func() : Fn {
        console.log(`I will be invoked immediately!`);

        return func;
    })(),
    10000
);

这意味着函数返回一个带有自己签名的函数,因此它也是有表现力的。

您可以完全按照TS的定义来定义它:
typeof func

type Fn = () => Fn;
setInterval(
    (function func() : Fn {
        console.log(`I will be invoked immediately!`);

        return func;
    })(),
    10000
);

这意味着函数返回一个带有自己签名的函数,因此它也很有表现力。

虽然我期待(希望)看到有人想出一个聪明的答案,但真正的答案是将函数拉出一个封闭的范围,调用它,然后设置间隔。@JaredSmith哈哈,这可能是一个衬里的缺陷。因此,我说我知道这可能不好,但我真的想看看是否有办法摆脱它。
显式函数返回类型
在这种情况下是有害的。。。Typescript足够聪明,可以推断出类型虽然我期待(希望)看到有人想出一个聪明的答案,但真正的答案是将函数拉到一个封闭的范围内,调用它,然后设置间隔。@JaredSmith哈哈,这可能是一行的缺陷。因此,我说我知道这可能不好,但我真的想看看是否有办法摆脱它。
显式函数返回类型
在这种情况下是有害的。。。Typescript足够聪明,可以推断出类型