2016-05-11 2 views
1

ES6でシェイプのネストされたメンバーを文書化するための受け入れられた方法(IDE互換性があることが好ましい)はありますか?入れ子構造のES6クラスメンバーを文書化するにはどうすればよいですか?

class Foo extends React.Components { 
    constructor(props) { 
     super(props); 
     this.props.bar; // Webstorm for example will think 'bar' is not a member of props 
    } 
} 

例えば

たちは私たちのクラスのメンバーの予想される構造を理解する上でIDEを支援するために行うことができます何かありますか?ような何か:クラス宣言またはコンストラクタ

+1

そのようなことがあります。 Typescript。 – estus

+0

私は物事にそれを使用します...私が完全に所有していないすべてのプロジェクトのオプションではありません:-( – echen

+1

タイプヒントは、タイプチェックがプロジェクトに本当のメリットをもたらさない場合でもTSに切り替える理由の1つです。私はあなたの最善の賭けはフローだと思う、それは[コメント付きの注釈](http://flowtype.org/blog/2015/02/20/Flow-Comments.html)をサポートし、IDEからいくつかのサポートを受けた。 – estus

答えて

1

@propertyの上部に

/** @member {string} props.bar **/ 

はちょっと動作しますが、フレーク状に感じます。

地獄のように醜い
/** 
* @property {object} props 
* @property {number} props.bar 
*/ 
class Foo extends React.Components { 
    constructor(props) { 
     super(props); 
    } 
} 

が、時計のように動作します:

class Foo extends React.Components { 
    constructor(props) { 
     super(props); 

     /** @type {{foo: {bar: {}}}} */ 
     this.props = this.props; 
    } 
} 
+0

ありがとう、これが表示されますアプローチ#1に行くつもりです – echen

関連する問題