I have an array that looks like this:
[{
"name": "c917379",
"email": "jim@bmw.de"
},
{
"name": "c917389",
"email": "jane@bmw.de"
}]
It is an array of arbitrary length with a number of repeating fields (I've reduced this to two fields for clarity). This gets passed into a JavaScript method.
/**
* @param {?} data
*/
update: function(data) {...}
I was wondering how you would document this in JSDoc. Ie. how would you document the type where the question mark is?
In JSDoc there is an example given for an array with members of type MyClass
. It looks like this:
@param{Array.<MyClass>}
So then you can also do like this:
@param{Array.<Object>}
And then this also makes sense:
@param{Array.<{name:string, email:string}>}
I just figured out the answer to my question :
It would look like this :
/**
*
* @param {{name:string, email:string}[]}
*
*/
Since there's nothing intrinsically "special" with your object contents I believe you would just have to declare it as:
@param {Object[]} data
The alternative would be to declare a "proper" constructor function for your "class", and then replace Object
with that function name.
This encapsulation might also help other parts of your code ;-)
Since this is the first question that appears on Google, i think that is useful show how to documment an two dimensional array.
The default sintax doesn't work, it shows like 'JsDoc sinxtax error':
/**
* @param {Object[][]} a two dimensional array of object
* */
The correct way to signal a two dimensional array is:
/**
* @param {Array.<Array.<Object>>} a two dimensional array of object
* */