Я получаю ошибку lint Тип "строка" не может быть назначен типу "undefined" в моем initialState при создании хранилища, и я очень борюсь с этим.
Вот упрощенное представление соответствующих частей:
export interface IGeneric {
aString: string;
aNumber: number;
}
interface IAppState {
currentSection: string;
experiences: IGeneric[] | [];
finishedScenario: boolean;
formation: IGeneric[] | [];
language: LanguageCode;
languages: IGeneric[] | [];
projects: IGeneric[] | [];
skills: IGeneric[] | [];
texts: IGeneric | Record<string, never>;
textsDatabase: IGeneric | Record<string, never>;
}
const INITIAL_STATE: IAppState = {
currentSection: 'main',
experiences: [],
finishedScenario: false,
formation: [],
language: 'en',
languages: [],
projects: [],
skills: [],
texts: {},
textsDatabase: {}
};
let store: Store;
export const getStore = (): Store<IAppState> => {
if (!store) {
store = createStore(
rootReducer,
INITIAL_STATE, // error here
compose(applyMiddleware(thunk, updateTexts), devToolsEnhancer())
);
}
return store;
};
Есть идеи, как я могу это решить? Спасибо!
ОБНОВЛЕНО:
Похоже, что в моих combReducers все мои значения состояний инициализируются undefined по умолчанию, согласно определениям Redux, все редукторы передаются неопределенными при инициализации Итак, хорошо. Я понял эту часть ... но остается вопрос ... как противостоять этому и заставить мой createStore принимать как undefined, так и реальный интерфейс для своего начального состояния ?? ????