Typescript:这种用于键入函数的键入方法是啥?

Posted

技术标签:

【中文标题】Typescript:这种用于键入函数的键入方法是啥?【英文标题】:Typescript: What is this typing method for typing a function called?Typescript:这种用于键入函数的键入方法是什么? 【发布时间】:2020-10-22 11:12:25 【问题描述】:

假设我创建了一个这样的类型:

type FunctionType = (param1: Param1Type, param2: Param2Type) => void;

然后我想用它来输入一个函数:

<FunctionType>function(param1, param2) 
    // ...do stuff
  

    这是不好的做法吗?我应该输入我的所有功能吗? 我问的原因是我有很多输入相同的函数。所以我试图找到一种更好的方法,而不是输入每个参数并返回。

    我喜欢箭头功能(任何人都应该这样做)。有没有办法将这种输入方法转换为箭头函数? (如果这不是好的做法,那么我不会继续)

TLDR:我在其他地方的 SO 问题上看到了这种方法。觉得它看起来很整洁,但我不知道它叫什么或如何将它与箭头函数一起使用

【问题讨论】:

没有强烈的需要创建函数类型除非你打算在高阶函数中使用它们(你想将函数作为参数传递)。 【参考方案1】:

    尖括号只是一个强制转换,这不是特殊的函数语法。不过,需要注意的语义与注释略有不同。 例如,如果您的函数使用的参数少于FunctionType,则它是有效的强制转换,但调用具有与FunctionType 相同数量的参数的函数仍然是类型错误,除非您将强制转换的结果分配给变量.我可能还缺少其他东西。 话虽如此,我认为这并不常见,但可能并不可怕。

    如果您使用箭头函数,您可以对变量进行注释。这可能是最惯用/最常见的imo

const fn: FunctionType = () => 

如果你没有将它分配给某个东西,或者像 function 语法一样转换它

(<FunctionType> (param1, param2) => )

【讨论】:

以上是关于Typescript:这种用于键入函数的键入方法是啥?的主要内容,如果未能解决你的问题,请参考以下文章

使用 Typescript 键入与另一个函数相同的函数

如何正确键入返回 TypeScript 中的类的函数?

TypeScript - 使用专有参数键入函数的对象映射

TypeScript:如何为函数中的任何键键入对象剩余分布

样式化组件 + Typescript:如何键入 css 辅助函数?

TypeScript:如何正确键入一个接受承诺并按原样返回该承诺的函数