2017-01-19 6 views
18

React.PropTypesを使用するのはTypeScriptリザルトアプリケーションで意味がありますか?これはちょうど「ベルトとサスペンダー」のケースですか?TypeScript反復アプリケーションのプロプタイト

コンポーネントクラスがProps型パラメータで宣言されているので:

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

クラス定義に

static propTypes { 
    myProp: React.PropTypes.string 
} 

を追加する任意の真のメリットがありますか?

答えて

3

私は、コンパイル時に小道具の種類が推測できないいくつかの面倒な状況では、propTypesを使用して生成された警告を見ておくと便利だと思います。

それ以外は、実際に私はそれを個人的に使用したことはありません。

22

コンポーネントライブラリなど、非TypeScriptプロジェクトで使用するコンポーネントを作成する場合、これらのプロジェクトはPropTypeベースの型検証の恩恵を受けることができません。

ただし、でない場合、は、非TypeScriptプロジェクトで使用されるものを作成することは無意味な練習です。これは、特にTypeScript 2.4がJSX子タイプのチェック(https://github.com/Microsoft/TypeScript/issues/13618)をサポートするようになったためです。

contextanyとして提供されていますが、これらの値がコンポーネントに渡されるためにはまだcontextTypesが必要です。

TypeScriptインターフェイスからコンパイル時にpropTypesを自動的に生成するツールがあるかどうかを調べたいと思っています。それはかなりクールだろう。

+0

良い点。私はそれらを含めるようにします。 – Ralph

+0

最初の声明を説明してください。 – vehsakul

+1

@vehsakul申し訳ありませんが、TypeScriptを使用していない開発者によってインストールされるパッケージを作成する場合は、実行時にエラーを取得するためにPropTypeが必要です。あなたのプロジェクトがあなた自身/他のTypeScriptプロジェクトだけの場合、プロジェクトが単純に構築されないので、あなたの小道具のTypeScriptインターフェイスで十分です。 –