Typescript: ES6クラスコンストラクタープロパティのサポート

作成日 2016年03月21日  ·  3コメント  ·  ソース: microsoft/TypeScript

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はそれをサポートしていないようですか?

Question

最も参考になるコメント

エラーは、デフォルトでは何も存在しないことである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;

全てのコメント3件

エラーは、デフォルトでは何も存在しないことである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:

このページは役に立ちましたか?
0 / 5 - 0 評価