1. ホーム
  2. reactjs

[解決済み】TypeScriptのReactアプリケーションでPropTypesを使用する場合

2022-04-14 04:55:21

質問

を使用していますか? React.PropTypes それとも、quot;belt and suspenders"のケースなのでしょうか?

コンポーネントクラスは Props 型パラメータを指定します。

interface Props {
    // ...
}
export class MyComponent extends React.Component<Props, any> { ... }

を追加することの本当の利点は何ですか?

static propTypes {
    myProp: React.PropTypes.string
}

をクラス定義に追加しますか?

解決方法は?

通常、コンポーネントのプロップをTypeScriptの型と React.PropTypes を同時に使用します。

ここでは、そうすることが有効なケースを紹介します。

  • コンポーネントライブラリなど、プレーンなJavaScriptで使用するパッケージの公開。
  • API呼び出しの結果などの外部入力を受け入れて渡すこと。
  • 適切または正確な型付けが行われていない可能性のあるライブラリのデータを使用すること(もしあれば)。

つまり、通常はコンパイル時の検証をどこまで信用できるかが問題なのです。

新しいバージョンのTypeScriptでは、TypeScriptで指定した React.PropTypes ( PropTypes.InferProps しかし、このような型は、コードの他の場所で使用したり参照したりするのが難しい場合があります。