gpt4 book ai didi

javascript - 如何在 JSDOC 中扩展 typedef 参数?

转载 作者:行者123 更新时间:2023-12-02 22:19:38 26 4
gpt4 key购买 nike

假设您在 ES6 类(文档)中有以下代码:

/**
* @typedef Test~options
* @type {object.<string>}
* @property {array} elements - An array containing elements
* @property {number} length - The array length
*/

/**
* @param {Test~options} opt - Option object
*/
test(opt){

}

现在我想记录另一个函数,我们将其命名为 test2。此函数采用完全相同的 options 对象,但需要另一个属性 parent

如何在不记录冗余选项的情况下记录这一点?冗余手段:

/**
* @typedef Test~options
* @type {object.<string>}
* @property {array} elements - An array containing elements
* @property {number} length - The array length
*/

/**
* @param {Test~options} opt - Option object
*/
test(opt){

}


/**
* @typedef Test~options2
* @type {object.<string>}
* @property {array} elements - An array containing elements
* @property {number} length - The array length
* @property {object} parent - The parent element
*/

/**
* @param {Test~options2} opt - Option object
*/
test2(opt){

}

最佳答案

我找到了这个解决方案,这对我来说非常有效。最初来自 here

 /**
* @typedef {Object} ChildType
* @property {String} childProp
*
* @typedef {Base & ChildType} Child
*/

更新:您还可以使用@extends 来扩展 jsdoc typedef。

/**
* @typedef {object} ChildType
* @extends Base
* @property {string} childProp
*/

第二个解决方案更好,因为普通 jsdocs 不支持 Base & ChildType

关于javascript - 如何在 JSDOC 中扩展 typedef 参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36737921/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com