簡體   English   中英

JSDOC:如何在簡單的 object 中記錄 function

[英]JSDOC: How to document a function within of simple object

我需要記錄一個簡單的 object 並且我找不到如何記錄內部方法的@param@returns的文檔或教程。 如果我將它們放在相應的方法( xyz )之上,它們將被忽略,如果我將它們放在 object 之上,則不會分配@param (或者我不知道如何在這里分配它)。

假設它是一個簡單的 object,如下所示:

export const foo = {

  abc: 'A string',

  xyz: (x) => {
    return x + '!'
  }

}

我希望這樣的事情應該有效:

/**
 * @module FooModule
 */

/**
 * @type {object}
 */ 

export const foo = {

 /**
   * @property {string} abc - some property
   */ 
  abc: 'A string',

 /**
   * @property {function} xyz - some method
   * @param {string} x - source string
   * @returns {string} - exclamation mark added
   */ 
  xyz: (x) => {
    return x + '!'
  }

}

但這顯然不起作用。 我在這里發現了一個類似的問題,但解決方案是錯誤的,它根本不起作用。 這應該如何正確完成,以便我在 output JSDoc 中獲得一個模塊FooModule ,一個具有foo.abc屬性和foo.xyz方法(包括@param@returns )的全局常量foo

可以做到嗎? 如果是,可以在沒有@typedef所有函數的情況下完成嗎?

似乎其他問題的最新答案發現了問題。 它不在 JSDoc 語法中,而是在 javascript 本身中。 似乎 JSDoc 的@module不能與export指令一起使用。 如果刪除了@module ,文檔將按預期工作。 如果使用@module ,則export必須替換為

module.exports = foo

在最后。 然后 JSDoc 構建工作正常。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM