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

时间:2019-10-21 08:34:04

标签: typescript arrow-functions object-destructuring

在用打字稿代码库学习React 16.8的过程中,我经历了许多不同的类型定义模式。

因此,为了保持一致,

这是设置es6箭头方法的类型定义的正确方法(推荐或有效),尤其是在出现对象分解的情况下

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

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

    })


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

在何处编写参数类型,是否与参数键入和函数键入签名冲突?

这里是对象

  1. 在每个,之前,在参数对象的每个属性上写
     const appMethod: MethodType = ({state:AppState , action: AppAction}) => ({
     }
  1. 在参数列表之后,是在完成销毁之后(即在首先关闭}之后的,具有相同类型顺序的单独类型列表
    const appMethod: MethodType = ({state , action}:{AppState, AppAction}) => {}

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

1 个答案:

答案 0 :(得分:1)

要简短:

  1. MethodTypemethod变量的一种。有效地是一种函数类型。

  2. MethodType是箭头函数的返回值的一种。因此它与1不具有可比性。

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

  4. 语法无效

3&4将写为

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