React
、Redux
、Immutable.js
+で構成されたプロジェクトがありますTypeScript
。実装中、可能な限り型を宣言しようとしていたところ、興味深い問題が見つかりました。以下のコード例を参照してください。
redux ストアの短い構成
import { createStore } from 'redux';
import { combineReducers } from 'redux-immutable';
const rootReducer = combineReducers({...});
const store = createStore(rootReducer);
コンポーネント内のどこか
// ...
const mapStateToProps = (state: ReturnType<typeof rootReducer>) => {
// state is plain object :(
};
VS Code で状態をホバーすると、状態がプレーン オブジェクトであることがツールチップに示されますが、そうではありません。からのカスタム コレクションである必要があります。Immutable.js
の正しいタイプを取得するにはどうすればよいrootReducer
ですか? または、私が間違っていることは何ですか?
スクリーンショット:
PSStateType
とReturnType
同じことをする