使用 Redux Dev Tools 扩展和 Typescript

Working with Redux Dev Tools extension and Typescript

我正在将我的项目转换为 Typescript。

这在 JS 中一直对我有用。

/* ##################### */
/* #### REDUX STORE #### */
/* ##################### */

const store = createStore(rootReducer, {
  // INITIAL STATE GOES HERE
},window.__REDUX_DEVTOOLS_EXTENSION__ && window.__REDUX_DEVTOOLS_EXTENSION__());

但是在 Typescript 中我遇到了这些错误:

我该如何解决这个问题?

TS 编译器抛出错误,因为它不知道 Window 对象上的 REDUX_DEVTOOLS_EXTENSION 属性。您可以扩展 Window 接口并添加让 TS 编译器满意的接口。或者你可以这样做:

createStore(rootReducer,{//INITIAL STATE GOES HERE},composeWithDevTools());

引用:https://redux.js.org/recipes/configuring-your-store#integrating-the-devtools-extension

我找到的最简单的解决方案是将 __REDUX_DEVTOOLS_EXTENSION_COMPOSE__ 显式添加到 window 对象

declare global {
  interface Window {
  __REDUX_DEVTOOLS_EXTENSION_COMPOSE__?: typeof compose;
  }
}