TypeScriptバージョン:
1.7.5
コード
class Foo extends React.Component<any, any> {
// ... some class definitions
}
Foo.defaultProps = {
bar: 'baz'
}
予想される行動:
エラーはありません。
実際の動作:
TS2339:プロパティ 'defaultProps'はタイプ 'typeofFoo'に存在しません。
こんにちは、 ES6クラスでtypescriptを使用してreactクラスを作成したいのですが、上記のエラーが発生しました。
クラス本体の代わりに上記のようにクラスプロパティを設定できれば素晴らしいと思います。 typescriptはそれをサポートしていないようですか?
エラーは、デフォルトでは何も存在しないことであるdefaultProps
上の静的プロパティFoo
。 したがって、そのようなプロパティが必要であることをコンパイラに伝える必要があります。
class Foo extends React.Component<any, any> {
static defaultProps: any;
}
Foo.defaultProps = {
bar: 'baz'
}
小道具は、いくつかのタイプのものであった場合、一般的に、 P
の代わりにany
、それは次のようになりclass Foo extends React.Component<P, ...
およびstatic defaultProps: P;
モジュールのマージを使用して、コードを少し少なくすることもできます。
class Foo { ... }
namespace Foo {
export const defaultProps = {
...
}
}
親切な回答ありがとうございました! :+1:
最も参考になるコメント
エラーは、デフォルトでは何も存在しないことである
defaultProps
上の静的プロパティFoo
。 したがって、そのようなプロパティが必要であることをコンパイラに伝える必要があります。小道具は、いくつかのタイプのものであった場合、一般的に、
P
の代わりにany
、それは次のようになりclass Foo extends React.Component<P, ...
およびstatic defaultProps: P;