2016-07-12 6 views
5

私はES6プロジェクトにJSDocのを使用しようとしている、私は地図を返すよ:Javascript + JsDoc:mapのような新しいES6データ型を文書化するには?

/** 
* Some documentation.. 
* 
* @returns {undefined} <- This should be replaced 
*/ 
function returningMap() { 
    const someMap = new Map(); 
    someMap.set("key", {a, b, c}); 
    return someMap; 
} 

私は@returnsでこれをドキュメント化する必要がありますどのように?

よくある質問hereです。

+4

@returns {Map}? – Thomas

+0

私はほとんど同じような問題があります。 https://stackoverflow.com/questions/38309123/jsdoc-with-and-immutable-js-datastructures-in-annotations –

答えて

2

答えはシンプルで美しいです:

/** 
* Some documentation. 
* 
* @return {Map<String, Object>} 
*/ 
function returningMap() { 
    const someMap = new Map(); 
    someMap.set("key", {a, b, c}); 
    return someMap; 
} 

基本的なパターンはMap<KeyType, ValueType>です。あなたの例から、keyは文字列であり、オブジェクトを評価します。あなたは先に進み、あなたの目的を宣言することさえできます。たとえば、

/** 
* @typedef {Object} MyObject 
* @property {Number} a 
* @property {Number} b 
* @property {String} c 
*/ 

あなたのマップはMap<String, MyObject>と宣言されます。クール、そうじゃない? Map<Number, Set<MyObject>>のように、他のマップやセットを入れ子にすることもできます。

0

あなたの最善の策は、@externalどこかでMapや友人を定義することが考えられます:

/** 
* The Map object is a simple key/value map. Any value (both objects and primitive values) may be used as either a key or a value. 
* @external Map 
* @see {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map} 
*/ 

次に、あなたのタイプが定義されますので、コメントが言うように、あなたは@returns {Map}を言うことができます。

すべてのURLとワンライナーを1か所で取得するのに便利な場所は、ternです。

関連する問題