在用打字稿代码库学习React 16.8的过程中,我经历了许多不同的类型定义模式。
因此,为了保持一致,
这是设置es6箭头方法的类型定义的正确方法(推荐或有效),尤其是在出现对象分解的情况下
所以我的第一个问题是定义(或设置为函数的)类型的正确方法是什么
=
之前写 const method: MethodType = (state:AlphaState , action: AlphaAction) => {
return data;
}
=>
之前 const method = (state:AlphaState , action: AlphaAction): MethodType => ({
})
现在我的问题的第二部分是,如果我们在参数中使用对象分解,那么它将变得更加复杂。
在何处编写参数类型,是否与参数键入和函数键入签名冲突?
这里是对象
,
之前,在参数对象的每个属性上写 const appMethod: MethodType = ({state:AppState , action: AppAction}) => ({
}
}
之后的,具有相同类型顺序的单独类型列表 const appMethod: MethodType = ({state , action}:{AppState, AppAction}) => {}
也欢迎任何其他或推荐的样式来处理此问题。
答案 0 :(得分:1)
要简短:
MethodType
是method
变量的一种。有效地是一种函数类型。
MethodType
是箭头函数的返回值的一种。因此它与1不具有可比性。
这是对象解构,与打字稿无关:将字段解构为AppState
和AppAction
局部变量。
语法无效
3&4将写为
const appMethod: MethodType = ({ state, action }: { state: AppState, action: AppAction }) => ({});