私はReduxを初めて、Typescriptを初めて使用しています。Typescript React/Redux: 'typeof MyClass'型の引数が 'ComponentType <...'型のパラメータに割り当てられません。
私はthe react-redux docsでやろうとしていることのかなり基本的なカットダウンバージョンを見つけました。
コードは次のようである:
import * as actionCreators from '../actions/index'
import { bindActionCreators } from 'redux'
import React, { Component } from 'react'
import { connect } from 'react-redux'
class TodoApp extends Component {
render() {
return (<div>test!</div>)
}
}
function mapStateToProps(state) {
return { todos: state.todos }
}
function mapDispatchToProps(dispatch) {
return { actions: bindActionCreators(actionCreators, dispatch) }
}
export default connect(mapStateToProps, mapDispatchToProps)(TodoApp)
私のコードエディタ(TSLint拡張子を持つVSコード)とtsc
ハイライトの両方をエラーとして最終(TodoApp)
こと、そしてこれは私が得るメッセージです:
src/components/test.tsx(20,61):エラーTS2345: 'typeof 型の引数' TodoApp 'が' ComponentType '型のパラメータに割り当てられません。< { todos:any; } & {actions:typeof "(filepath)..."タイプ 'typeof TodoApp'はタイプ 'StatelessComponent < {todos:any;}に割り当てられません。 {actions:typeof "(filepath)...' 'typeof TodoApp'は、署名に一致しません。 '(小道具:{todos:any;} & {actions:typeof "(filepath)/ actions/index";} & { children ?: ReactNode;}、context? :任意):ReactElement |ヌル'。私の問題は、私は完全に
mapStateToProps
とconnect
がやっている正確に理解が、前
、その理解を得ることにしていないということです
20輸出デフォルト接続(mapStateToProps、 mapDispatchToProps)(TodoApp) このTypescriptの「エラー」を修正するためにここでコードを変更できるかどうかを知りたいです。
私の実際の実施例では、私は上記の投稿、そして私の解決策が実際に変更されたものと全く同じではありませんでした'インタフェースITodoActionProps { someAction:()=>無効 }:' あなたの偉大な答えはすぐに明らかにすることを作られた - ありがとう ''インタフェースITodoActionProps {typeof演算actionCreators.someAction は someAction}へ! – kris