[英]Missing type annotation for A. A is a type parameter declared in function type
I have the following code: 我有以下代码:
import { combineReducers } from 'redux';
import planeReducer from './plane/reducer';
export default combineReducers({
planes: planeReducer
});
which runs properly when running: 在运行时可以正常运行:
> expo start
Then, when I run flow
with the following command: 然后,当我使用以下命令运行
flow
时:
> npm run flow
I get the following flow error: 我收到以下流错误:
Missing type annotation for A. A is a type parameter declared in function type [1] and was implicitly instantiated at
call of combineReducers [2].
src/store/index.js
1| import { combineReducers } from 'redux';
2| import planeReducer from './plane/reducer';
3|
[2] 4| export default combineReducers({
5| planes: planeReducer
6| });
7|
flow-typed/npm/redux_v4.x.x.js
[1] 56| declare export function combineReducers<O: Object, A>(reducers: O): CombinedReducer<$ObjMap<O, <S>(r: Reducer<S, any>) => S>, A>;
Then, when I modify the code above by adding: <any, any>
as follows: 然后,当我通过添加以下内容来修改上面的代码时:
<any, any>
如下:
import { combineReducers } from 'redux';
import planeReducer from './plane/reducer';
export default combineReducers<any, any>({
planes: planeReducer
});
when I run flow
again as before, the flow
error goes away, but if I run again: 当我像以前一样再次运行
flow
时, flow
错误消失了,但是如果我再次运行:
> expo start
I get the following runtime error: 我收到以下运行时错误:
[01:30:16] Your app is running at exp://192.168.1.194:19000
Logs for your project will appear below. Press Ctrl+C to exit.
[01:30:16] SyntaxError: D:\react-navigation-header-issue\src\store\index.js: Unexpected token, expected ";" (4:34)
[01:30:16] 2 | import planeReducer from './plane/reducer';
[01:30:16] 3 |
[01:30:16] > 4 | export default combineReducers<any, any>({
[01:30:16] | ^
[01:30:16] 5 | planes: planeReducer
[01:30:16] 6 | });
[01:30:16] 7 |
Any idea on how to modify the code properly in order fix that flow
error and at the same time keep the applicatioin running with no errors? 关于如何正确修改代码以修复
flow
错误并同时保持应用程序无错误运行的任何想法?
Thanks! 谢谢!
Please try adding @flow
pragma comment in the first line of the file. 请尝试在文件的第一行中添加
@flow
pragma注释。 It's probably related to the babel issue: https://github.com/babel/babel/issues/9240 . 这可能与babel问题有关: https : //github.com/babel/babel/issues/9240 。
Edit : There's undocumented all
option in flow-strip-types
( babel-preset-expo
makes use of it internally). 编辑 :
flow-strip-types
有未记录的all
选项 ( babel-preset-expo
在内部使用它)。
You need to overwrite it in your babel config: 您需要在babel配置中覆盖它:
overrides: [{
plugins: [
['@babel/plugin-transform-flow-strip-types', {all: true}],
]
}]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.