Having next example:
var CONF = {
locale: {
"en": {
name: "English",
lang: "en-US"
},
"es": {
name: "Spanish",
lang: "es-ES"
}
}
};
And knowing that what the locale property contains is a dictionary object, which comes from the database, how can I document its inner properties with JSDoc?
Currently I am thinking to typedef
type for my locale objects, then may I be able to set the locale
property to simply an Array of my defined type? Is this the right way to do it?
According to the JSDoc 3 docs:
Arrays and objects (type applications and record types)
An object with string keys and number values:
{Object.<string, number>}
So it would be:
/** @type {{locales: Object.<string, {name: string, lang: string}>}} */
var CONF = {
locales: {
en: {
name: "English",
lang: "en-US"
},
es: {
name: "Spanish",
lang: "es-ES"
}
}
};
Cleaner, using @typedef
/**
* @typedef {{name: string, lang: string}} Locale
*/
/**
* @type {{locales: Object.<string, Locale>}}
*/
var CONF = {
locales: {
en: {
name: "English",
lang: "en-US"
},
es: {
name: "Spanish",
lang: "es-ES"
}
}
};