TypeScript ReactアプリケーションにおけるPropTypes 質問する

TypeScript ReactアプリケーションにおけるPropTypes 質問する

TypeScript React アプリケーションで を使用することはReact.PropTypes意味があるのでしょうか、それともこれは単なる「ベルトとサスペンダー」の場合でしょうか?

コンポーネント クラスはProps型パラメータを使用して宣言されているため、

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

追加することで何かメリットがあるのでしょうか?

static propTypes {
    myProp: React.PropTypes.string
}

クラス定義に?

ベストアンサー1

Typescript と PropTypes は目的が異なります。Typescript はコンパイル時に型を検証しますが、PropTypes は実行時にチェックされます。

Typescript は、コードを書くときに便利です。React コンポーネントに間違った型の引数を渡した場合に警告したり、関数呼び出しの自動補完機能を提供したりします。

PropTypes は、API から JSON をロードするときなど、コンポーネントが外部データとどのようにやり取りするかをテストするときに役立ちます。PropTypes は、次のような役立つメッセージを出力することで、コンポーネントが失敗する理由をデバッグするのに役立ちます (React の開発モードの場合)。

Warning: Failed prop type: Invalid prop `id` of type `number` supplied to `Table`, expected `string`

Typescript と PropTypes は同じことを行うように見えるかもしれませんが、実際にはまったく重複していません。ただし、Typescript から PropTypes を自動的に生成して、型を 2 回指定しなくても済むようにすることは可能です。例:

おすすめ記事