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

时间:2018-01-12 18:03:07

标签: javascript reactjs flowtype static-typing flow-typed

我刚刚将Flow添加到我的Create-React-App项目中,并且在将我的一些计算代码转换为flow-typed时,我遇到了这个错误,其中包含一个被破坏的“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?

2 个答案:

答案 0 :(得分:6)

通常我遵循的模式,特别是功能组件道具如下:

type Props = {
  prop: Type,
};

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

答案 1 :(得分:3)

是的,你可以通过注释整个对象来实现,如下所示:

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