Typescript 返回自身的函数的返回类型是什么?
问候,我是打字新手 我曾经在JS中以这种方式使用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) 谁能给我一些建议
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足够聪明,可以推断出类型