将对象解构与流类型相结合

Combining object destructuring with flow-typing

我刚刚将 Flow 添加到我的 Create-React-App 项目中,并且在将我的一些计算代码转换为流类型时,我遇到了一个解构的错误 "object as params"

原始信号:

calcWeightOnConveyor({ tonsPerHour, conveyorLength, conveyorSpeed })

流式后:

calcWeightOnConveyor({ tonsPerHour: number, conveyorLength: number, conveyorSpeed: number }): number

错误:

$ flow
Error: src/utils/vortex/calculate.js:31
 31: export function calcWeightOnConveyor({ tonsPerHour: number, conveyorLength: number, conveyorSpeed: number }) {
                                                                                 ^^^^^^ Strict mode function may not have duplicate parameter names

有没有办法以这种方式将流与对象解构结合使用,或者我应该重新设计这些函数 API?

是的,您可以通过如下方式注释整个对象来做到这一点:

calcWeightOnConveyor({
  tonsPerHour,
  conveyorLength,
  conveyorSpeed
}: {
  tonsPerHour:number,
  conveyorLength:number,
  conveyorSpeed:number
}):number

大体上我遵循的模式,尤其是功能组件道具如下:

type Props = {
  prop: Type,
};

const Component = ({
  prop,
}: Props) => ();