我已经在我的项目中使用了React和ES6。我使用Webpack和Babel来编译我的代码。我现在第一次尝试使用Flow,但它并不像Babel那样正确地剥离Flow注释。
安装babel-preset-flow
后我的.babelrc
如下所示:
{
"presets": ["es2015", "stage-3", "react", "flow"]
}
我使用Flow注释制作了一个简单的React组件:
// @flow
import React from 'react';
export default function Test({
text?: string = 'test',
}) {
return (
<div>{text}</div>
);
}
现在,当我运行我的webpack构建(使用.babelrc
配置)时,我收到此错误:Module build failed: SyntaxError: Unexpected token, expected ,
错误是指React组件中text
参数后面的问号。所以它不明白这是一个它应该剥离的Flow注释?有人能帮忙吗?
答案 0 :(得分:1)
您不能将流类型注释放在对象的中间。像往常一样,babel将您的代码解释为destructuring the object and assigning the value to another variable name。你可能正在寻找更像这样的东西:
(Try)
// @flow
import React from 'react';
export default function Test({
text = 'test',
}: {text: string}) { // Type of the destructured object comes afterwards
return (
<div>{text}</div>
);
}