如何使用Flow键入默认导出? Flow有办法实现这个目标吗?
期望的结果:
// index.js type complexThing = { a: string } type Thing = { x: number,y: boolean,z: complexThing } export default { x: 0,y: true,z: {a: 'hello'} } : Thing // this says my default export is a Thing
可接受的替代方案:
或者,我不介意内联键入每个对象属性,但我认为这在语法上是不可能的:
export default { // I don't know how to add type signatures here x: 0,// number y: true,// boolean z: {a: 'hello'} // complexThing }
不是我想要的:
我不想做的是将一个变量存储到Flow类型:
// index.js type complexThing = { a: string } type Thing = { x: number,z: complexThing } const myThing: Thing = { x: 0,z: {a: 'hello'} } export default myThing
解决方法
你正在做一个
typecast,所以你需要围绕物体的parens,例如更改
export default { x: 0,z: {a: 'hello'} } : Thing
至
export default ({ x: 0,z: {a: 'hello'} } : Thing)