ReactでTypescriptでPropTypesを使用する方法

マイケル・デュラント

TypescriptでPropTypesを使用しようとしていますが、エラーが発生します。

タイプスクリプトなしで私は使​​用することができました:

class TodoFilterItem extends Component {
  constructor (props) {
    super(props);

そして一番下に

TodoFilterItem.propTypes = {
  name: PropTypes.string,
  filter: PropTypes.string,
  filterTodos: PropTypes.any
}

そしてそれはPropTypesを持っているだけで(つまりtypescriptなしで)機能しました。

しかし、Typescriptを追加すると、

class TodoFilterItem extends Component<ITodoFilterItem> {
  constructor (props:ITodoFilterItem) {
    super(props);
    ...

私はこのようなインターフェースとして小道具を持っています:

interface ITodoFilterItem  {
  filter: string,
  name: string,
  filterTodos: any
}

そして私は同じpropTypesを使用します:

TodoFilterItem.propTypes = {
  filter: PropTypes.string,
  name: PropTypes.string,
  filterTodos: PropTypes.any
}

エラーが発生します

Property 'propTypes' does not exist on type 'typeof import("/my_adrs/node_modules/@types/prop-types/index")'.  

これに対処し、ReactでTypescriptでPropTypesを使用できるようにする方法は?

ベンズスティーブス

PropTypesはTypescriptとは別のものです。再利用propTypesするには、インターフェースまたはタイプに変換する必要があります。

この

TodoFilterItem.propTypes = {
  filter: PropTypes.string,
  name: PropTypes.string,
  filterTodos: PropTypes.any
}

になります

interface ITodoFilterItem {
  filter: string;
  name: string;
  filterTodos: any; 
}

インターフェースはシンプルであることを使用して、交換してくださいTodoFilterItemPropsITodoFilterItem

慣例では、コンポーネントの小道具に名前を付けますIPropsこれをまとめると、コンポーネントは次のようになります。

interface IProps { 
 name: string;
 filter: string;
 filterTodos: any; 
}

class TodoFilterItem extends Component<IProps> {
  constructor (props:IProps) {
    super(props);
    ...

注意事項 any

に入力しないようにしてくださいanyanyタイプは同じで、タイプされていません。filterTodos配列だと思いtodosます。その場合は、todoそれ呼び出すためのタイプを作成できます

type Todo = { ...properties of a todo } 

次に、次のようなfilterTodos配列にTodoなるように入力します。

type Todo = { 
  name: string,
  status: 'not started' | 'in progress' | 'done'
}

interface IProps { 
  filter: string;
  name: string;
  filterTodos: Todo[]; 
}

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

Typescript / FormikでuseRefを使用する方法

TypescriptとReactで参照を使用する方法

react / typescriptで小道具として列挙型を使用する方法

react-jsでimmutable-jsの場合にPropTypesを使用する

React-NativeでES7静的propTypesを使用する

react-transition-groupの使用中にReact15.5.3PropTypesで非推奨の警告を修正する方法

typescriptでreact-test-renderer / shallowを使用する方法は?

typescriptでwebpackを使用する方法は?

PropTypesなしでReactのコンテキストを使用することは可能ですか?

typescriptプロジェクトでreact-bootstrapを使用する方法

Typescriptでreact-native-webを使用する方法

React.PropTypes.nodeに相当するTypeScriptとは何ですか?

TypeScriptでmomentjsを使用する方法

TypeScriptでReact.lazyを使用する

Typescript ReactでsetInterval()を使用する

Typescriptでreact-pdfライブラリを使用する方法

TypescriptとSASSでReactを使用する方法

Typescriptを使用してreact-reduxで「connect」を正しく使用する方法

Material-ui 4、React 16.8、TypeScript3.5でRefを使用する方法

PropTypesでReduxのuseSelectorおよびuseDispatchフックを使用する方法

Typescriptを使用してReactでWebWorkersを使用する方法

reactおよびtypescriptでsurveyjsを使用する方法

Typescriptでreact-datesを使用する

TypeScriptでAngularjsを使用する方法

React-NativeでPropTypes.stringを使用する

typescriptでreact-colorを使用する方法

React PropTypesでインポートされた値を使用するにはどうすればよいですか?

typescript、react、jestで手動モックを使用する方法は?

Typescriptでreact-phone-input-2を使用する方法

TOP 一覧

  1. 1

    STSでループプロセス「クラスパス通知の送信」のループを停止する方法

  2. 2

    PictureBoxで画像のブレンドを無効にする

  3. 3

    HTTPヘッダー 'SOAPAction'の値はサーバーによって認識されませんでした

  4. 4

    レスポンシブウェブサイトの一番下にスティッキーなナビゲーションバーを作成するのに問題がある

  5. 5

    セレンのモデルダイアログからテキストを抽出するにはどうすればよいですか?

  6. 6

    Ansibleで複数行のシェルスクリプトを実行する方法

  7. 7

    Python / SciPyのピーク検出アルゴリズム

  8. 8

    ZScalerと証明書の問題により、Dockerを使用できません

  9. 9

    tkinterウィンドウを閉じてもPythonプログラムが終了しない

  10. 10

    tf.nn_conv2dとtf.nn.depthwise_conv2dの違い

  11. 11

    Crashlytics:コンパイラー生成とはどういう意味ですか?

  12. 12

    BLOBストレージからデータを読み取り、Azure関数アプリを使用してデータにアクセスする方法

  13. 13

    テキストフィールドの値に基づいて UIslider を移動します

  14. 14

    amCharts 4で積み上げ棒グラフの輪郭を描く方法は?

  15. 15

    MLでのデータ前処理の背後にある直感

  16. 16

    Postmanを使用してファイル付きの(ネストされた)jsonオブジェクトを送信する

  17. 17

    「埋め込みブラウザのOAuthログイン」を有効にしてコールバックURLを指定した後でも、Facebookのコールバックエラーが発生する

  18. 18

    Officeアドインを使用してOutlookの連絡先のリストにプログラムでアクセスすることは可能ですか?

  19. 19

    モジュラーJava Webアプリケーションを作成する最良の方法は何ですか

  20. 20

    Chromeウェブアプリのウェブビューの高さの問題

  21. 21

    ezdxf pythonパッケージを使用して既存のdxfファイルを変更するにはどうすればよいですか?

ホットタグ

アーカイブ