У меня есть следующий код:
src \ types.js
export type TLoadIndex = { type: string, index: number }
export type TLoadAll = { type: string }
export type TDeleteAll = { type: string }
export type TAction = TLoadIndex | TLoadAll | TDeleteAll;
export type TPlane = {
title?: string,
caption?: string,
text?: string,
image: string,
};
src \ store \ plane \ reducer.js
import planeList from './planeList';
import { LOAD_INDEX, LOAD_ALL, DELETE_ALL } from './actions';
import type { TLoadIndex, TLoadAll, TDeleteAll, TAction, TPlane } from '../../types';
export default function (currentList: TPlane[] = [], action: TAction): TPlane[] {
let newList: TPlane[] = currentList;
switch (action.type) {
case LOAD_INDEX:
if (planeList[action.index])
newList = [...currentList, planeList[action.index]];
break;
case LOAD_ALL:
newList = planeList;
break;
case DELETE_ALL:
newList = [];
break;
}
return newList;
}
Моя проблема: , когда я запускаю следующую команду:
> npm run flow
Я получаю следующую ошибку flow
:
Error -------------- src/store/plane/reducer.js:9:25
Cannot get action.index because:
- property index is missing in TDeleteAll [1].
- property index is missing in TLoadAll [1].
[1] 5| export default function (currentList: TPlane[] = [], action: TAction): TPlane[] {
6| let newList: TPlane[] = currentList;
7| switch (action.type) {
8| case LOAD_INDEX:
9| if (planeList[action.index])
10| newList = [...currentList, planeList[action.index]];
11| break;
12| case LOAD_ALL:
Error -------------- src/store/plane/reducer.js:10:49
Cannot get action.index because:
- property index is missing in TDeleteAll [1].
- property index is missing in TLoadAll [1].
[1] 5| export default function (currentList: TPlane[] = [], action: TAction): TPlane[] {
6| let newList: TPlane[] = currentList;
7| switch (action.type) {
8| case LOAD_INDEX:
9| if (planeList[action.index])
10| newList = [...currentList, planeList[action.index]];
11| break;
12| case LOAD_ALL:
13| newList = planeList;
Суть в том, что я не хочу добавлять свойство: index
к следующим типам: { TLoadAll, TDeleteAll }
, поскольку это свойство необходимо привязать только к типу: TLoadIndex
.
Возможнопроблема в том, как flow
внутренне работает с switch
.
Есть идеи, как сделать эту работу?
Спасибо!