在 TypeScript 中,我可以轻松地键入命名箭头函数,但是如何在基于函数关键字的函数中做同样的事情呢?

Posted

技术标签:

【中文标题】在 TypeScript 中,我可以轻松地键入命名箭头函数,但是如何在基于函数关键字的函数中做同样的事情呢?【英文标题】:In TypeScript, I can easily type named arrow function, but how do I do the same thing in function keyword based function? 【发布时间】:2019-10-06 10:30:33 【问题描述】:

请看这个例子:

const MyFunction: SomeType<SomeProp> = () => 



在命名的箭头函数中输入MyFunction 更容易,但是如何在基于函数关键字的函数中做同样的事情呢?

function MyFunction()  // ???

【问题讨论】:

理想情况下,您的代码应该构成一个minimal reproducible example,以便其他人可以修改它。如前所述,我只能假设SomeType&lt;SomeProp&gt; 是某种特定的函数类型,因此您可能可以使用function MyFunction(): ReturnType&lt;SomeType&lt;SomeProp&gt;&gt; ,但如果没有完整的示例,这很难说。 【参考方案1】:

检查一下:

const MyFunction: SomeType<SomeProp> = function() 


【讨论】:

【参考方案2】:

像这样:

function MyFunction(): SomeType<SomeProp>  


【讨论】:

我不这么认为,您的实现实际上意味着MyFunction 将返回SomeType&lt;SomeProp&gt;,这与const MyFunction: SomeType&lt;SomeProp&gt; = () =&gt; 完全不同

以上是关于在 TypeScript 中,我可以轻松地键入命名箭头函数,但是如何在基于函数关键字的函数中做同样的事情呢?的主要内容,如果未能解决你的问题,请参考以下文章

在 Python 中轻松地将变量从/向命名空间/字典转储

我怎样才能知道 GCC 可以使用哪些标志来更轻松地链接库?

在 Typescript 中命名联合类型

是否可以在 TypeScript 中精确键入 _.invert?

使用 TypeScript 键入“复杂”对象

如何使用 Typescript 在不丢失任何道具的情况下键入样式组件?