什么是定义es6函数类型的正确方法

What is the right way to define es6 function type

在使用 TypeScript 代码库学习 React 16.8 时,我经历了许多不同的类型定义 遵循的模式。

所以为了保持一致性,

这是设置 es6 箭头方法类型定义的正确方法(推荐或有效),尤其是当对象解构出现时

所以我的第一个问题是定义(或设置它所谓的)函数 类型 的正确方法是什么

  1. 写在函数名之后,=之前
    const method: MethodType = (state:AlphaState , action: AlphaAction) => {
    return data;
}
  1. 在参数列表之后,就在 =>
  2. 之前
    const method  = (state:AlphaState , action: AlphaAction): MethodType => ({

    })


现在我问题的第二部分是,如果我们在参数中使用对象解构,那么它会变得更加复杂。

在哪里写参数类型,是否会与参数类型和函数类型签名冲突?

这里是对象

  1. 在每个 ,
  2. 之前写入参数对象的每个 属性
     const appMethod: MethodType = ({state:AppState , action: AppAction}) => ({
     }
  1. 在参数列表之后,一个单独的类型列表,在解构完成后具有相同的类型顺序,即在第一次关闭之后 }
    const appMethod: MethodType = ({state , action}:{AppState, AppAction}) => {}

也欢迎使用任何其他或推荐的样式来处理此问题。

保持空头:

  1. MethodTypemethod 变量的一种类型。实际上,一个函数类型。

  2. MethodType是箭头函数的return值的一种类型。所以和1比不了,是不一样的

  3. 它是对象解构,与打字稿无关:您将字段解构为 AppStateAppAction 局部变量。

  4. 语法无效

3&4 会写成

const appMethod: MethodType = ({ state, action }: { state: AppState, action: AppAction }) => ({});