Property '__REDUX_DEVTOOLS_EXTENSION__' does not exist on type 'Window & typeof globalThis'.
현재 프로젝트에서 리덕스를 쓰며, 구글 extension 으로 리덕스를 디버깅하고 싶다면 redux devtools 를 사용하게 될 것이다.
그러나 만약 프로젝트에서 js나 jsx가 아닌 tsx,ts(타입스크립트)를 쓰고 리덕스 디버깅 extension 사용한다면 위와 같은 에러가 발생할 것이다.
위의 에러는 번역하면 __REDUX_DEVTOOLS_EXTENSION_COMPOSE__가 윈도우라는 타입을 가지고 있지 않기 때문이다.
이럴 경우 Window 타입을 정의해주면 된다.
import * as React from 'react'
import * as ReactDOM from 'react-dom'
import App from './App';
import { createStore, compose } from 'redux';
import { Provider }from 'react-redux';
declare global {
interface Window {
__REDUX_DEVTOOLS_EXTENSION_COMPOSE__?: typeof compose;
}
}
const composeEnhancers = window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ || compose;
const store = createStore(reducer, composeEnhancers())
ReactDOM.render(
<Provider store = {store}>
<App />
</Provider>,
document.getElementById('root')
)
리덕스 툴
https://github.com/zalmoxisus/redux-devtools-extension