javascript - 如何在 JSDoc 中为数组添加属性?
问题描述
我有一个Series
对象数组。
它是一个规则的对象数组,通过与此类似的代码添加了一个函数:
let series = loadSeriesFromDatabase();
series.getByName = (name)=>{return series;}
我现在尝试以多种方式将此函数(getByName
)添加到 SeriesList。我最接近的是将系列记录为{Object}
并像这样添加它:
/**
* @callback GetByNameFn
* @param {string} name Name of the series
* @returns {Series} The series that matches given name
*/
/**
* @typedef {Object} SeriesList
* @property {GetByNameFn} getByName
*/
/**
* @type {SeriesList}
*/
let series = [];
但这留下 series 不是作为 anSeries[]
而是作为 an Object
,这不是我想要的......
上面的代码识别getByName
为函数,但如果我将其更改为@typedef {Series[]} SeriesList
它停止工作......
有没有办法让它与数组一起工作,或者我只是做错了?
解决方案
我采用了您最初的尝试并修改了 JSDocs 以获得我认为您正在寻找的结果。
具有功能的系列列表的能力也存在。
/**
* @callback GetByNameFn
* @param {string} name Name of the series
* @returns {Series} The series that matches given name
*/
/**
* @typedef {Object} SeriesFunctions
* @property {GetByNameFn} getByName
*/
/**
* @typedef {object} Series
* @property {string} name
* @property {int} year
*/
/**
* @type {Series[]&SeriesFunctions}
*/
let series = [];
// Usage
series.getByName();
// Other Usage for the autocomplete fields.
series[0].name
推荐阅读
- php - Codeigniter $this->input->post() 对于提交输入为空
- python - 在 Altair 中使用共享选择器/过滤器在不同图表中绘制两个数据框
- javascript - 有没有办法使用javascript动态添加或删除对象
- rest - PayPal REST API /v1/reporting/balances balance_detail 返回错误的负余额
- kubernetes - 删除 kubectl apply -f 中不存在的注解
- c++ - 包含带有声明的标头时出现许多 OpenSSL 'C3861: .. identifier not found'
- struct - 如何向 Julia 的新员工发送一个结构?
- java - 使用 java Maven Apache Netbeans 构建可执行 Jar
- sql-server - n 如何在 MSSQL 中使用 GROUP_CONCAT() 并根据整行对数据进行排序?
- java - 从 Java 调用 Kotlin 高阶函数?