2016-07-11 4 views
0

私はReact 15とTypeScript 1.8を使用しています。setStateは私の状態インターフェイスのすべてのプロパティを指定したいと思っていますか?

コンポーネントの状態オブジェクトには複数のプロパティがあります。私は型を記述するインタフェースを定義し、class MyComponent extends React.Component<any, MyStateInterface>でコンポーネントを記述し、コンストラクタメソッドのすべてのプロパティの初期値を設定します。

私が抱えている問題は、this.setStateに電話をかけて自分のプロパティのうちの1つだけを更新するときです。タイプスクリプトは私がすべて(「不足しているプロパティ」エラー)を設定していないと訴えています。私は、ソリューションのためにStackOverflowを検索し、唯一の解決策はすべてのフィールドをオプションであると宣言することであると非難していることが判明しました。

しかし、これは18か月前の回答であり、私はTypeScriptとReactの両方の高速化を知っています。私はこれが過去500日間に変わったのか、それとも推奨される方法が何であるか疑問に思っています。

+1

[typescriptコンパイラが1つの反応状態プロパティでのみsetStateを呼び出すことができる]の複製が可能です(http://stackoverflow.com/questions/37300933/allow-typescript-compiler-to-call-setstate-on-only-one)。 -react-state-property) –

答えて

0

私が抱えている問題は、this.setStateを呼び出して自分のプロパティを1つだけ更新するときです。タイプスクリプトは、私がそれらのすべてを設定していないと文句を言う

あなたは状態のすべてのメンバーをオプションとしてマークする必要があります。

これは安全ではないと思うかもしれませんが、フレッシュネスのためにmoreはまだ型チェックされています。

関連する問題