如何记录在JSDoc字典?

问题描述 投票:44回答:2

有下面的例子:

var CONF = {
    locale: {
        "en": {
            name: "English",
            lang: "en-US"
        },
        "es": {
            name: "Spanish",
            lang: "es-ES"
        }
    }
};

并且知道什么样的区域设置属性包含一个Dictionary对象,它来自数据库,我如何与JSDoc记录其内在性质?

目前,我想着typedef类型为我的语言环境的对象,那么可能我能够在locale属性设置为简单的定义我的类型的数组?这是做正确的方式?

javascript dictionary jsdoc
2个回答
79
投票

按照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"
        }
    }
};

2
投票

至于我可以告诉大家:

使用@typedef@property定义自定义类型在JSDoc“正确”的方式。但它是很麻烦写的和丑陋的读取(在文件一大忌)。

该记录类型是更加简洁(注意双{{s):

   /** {{
         name:string, 
         lang:string
   }} */
© www.soinside.com 2019 - 2024. All rights reserved.