有下面的例子:
var CONF = {
locale: {
"en": {
name: "English",
lang: "en-US"
},
"es": {
name: "Spanish",
lang: "es-ES"
}
}
};
并且知道什么样的区域设置属性包含一个Dictionary对象,它来自数据库,我如何与JSDoc记录其内在性质?
目前,我想着typedef
类型为我的语言环境的对象,那么可能我能够在locale
属性设置为简单的定义我的类型的数组?这是做正确的方式?
按照JSDoc 3 docs:
数组和对象(类型的应用程序和记录类型)
与串键和数字值的对象:
{Object.<string, number>}
因此,这将是:
/** @type {{locales: Object.<string, {name: string, lang: string}>}} */
var CONF = {
locales: {
en: {
name: "English",
lang: "en-US"
},
es: {
name: "Spanish",
lang: "es-ES"
}
}
};
清洁剂,使用@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"
}
}
};
至于我可以告诉大家:
使用@typedef
和@property
定义自定义类型在JSDoc“正确”的方式。但它是很麻烦写的和丑陋的读取(在文件一大忌)。
该记录类型是更加简洁(注意双{{
s):
/** {{
name:string,
lang:string
}} */