当前位置: 首页 > 知识库问答 >
问题:

JSDoc中Object中任意键的值的文档结构

苏华藏
2023-03-14

我有一个函数工厂

function factory(events) {
  for(const key in events) {
    const { before, after } = events[key]
  }
}

其中参数events通常是:

{
  only: {
    before(){}
    after(){}
  },
  except: {
    before(){}
    after(){}
  },
}

其中键只有除了可以是任何值,但值总是(必须是)类型{前,后}其中都是函数。

如何使用JSDoc在我的工厂函数中为事件参数记录这个结构?

我能想到的唯一解决方案是制作一个数组,然后我可以像这样使用typedef:

/**
 * @typedef event
 * @property {function} before
 * @property {function} after
 */
/**
 * @typedef eventTuple
 * @property {string} key
 * @property {event} event
 */
/**
 * @param {[eventTuple]} events
 */
function factory(events) {
  for(const { key, event } of events) {
    const { before, after } = event
  }
}

但是我真的想保留原来的结构。

是否可以在我的原始结构中记录此事件类型定义?

我主要关心的是它在VSCode中的工作,VSCode将这些类型定义从JSDoc中提升出来。

共有1个答案

习高格
2023-03-14

可以使用TS语法。

老实说,我不确定这是否在任何地方都有效。但至少对智能感知有用

js prettyprint-override">/**
 * @typedef event
 * @property {function} before
 * @property {function} after
 */

/**
 * @param {{[key: string]: event}} events
 */
function factory(events) {
    for (const key in events) {
        const { before, after } = events[key]
    }
}
 类似资料:
  • JSDoc 是一个根据 JavaScript 文件中注释信息,生成 JavaScript 应用程序或库、模块的API文档 的工具。你可以使用他记录如:命名空间,类,方法,方法参数等。 类似JavaDoc 和 PHPDoc。现在很多编辑器或IDE中还可以通过JSDoc直接或使用插件生成智能提示。

  • 在jsdoc typedef中可以有动态键(道具名称)吗?我想象这会像下面的例子一样(这不起作用)。 传递typedef会使打字稿感到不安, “{bar: string; baz: number;}”类型的参数不能分配给“Foo”类型的参数。对象文字只能指定已知属性,“baz”在“foo”类型中不存在 输出:

  • 问题内容: 我正在尝试编写一个可以处理json响应的结构类型 由于键每次都不相同…不同的响应可能包含或多或少的键,不同的键,如您所见,使用50x100返回特定大小的多个图像,我如何创建与此匹配的结构? 我可以这样: 用于单个项目,以及用于特定键的列表。但是包含的结构看起来如何? 就像是: 可能有效,但我无法列举所有可能的图像尺寸响应。另外,Image_Urls末尾没有真正的列表。我希望能够将其直接

  • 我正在尝试编写一个能够处理json响应的结构类型,就像这样 由于每次键都不一样…不同的响应可能有或多或少的键,不同的键,正如您可以看到的50x100返回特定大小的多个图像,我如何创建与此匹配的结构? 我可以像这样做: 以及针对特定键的它们的列表。但包含结构的外观如何? 类似于: 可能有效,但我无法列举所有可能的图像大小响应。最后的Image_Urls并不是一个真正的列表。我希望能够将它直接转储到j

  • 我正在使用Amazon的DynamoDBMapperJava类将数据保存到DynamoDB表中。该代码需要以多种不同的方式对数据进行结构化处理,因此我不想编写特定于结构的代码。出于这个原因,我将代码存储为Java的JSON对象——基本上是荣耀的HashMaps。 我想将这些JSON对象作为Dynamo相对较新的JSON文档类型存储到Dynamo中。 DynamoDBMapper API的工作方式基

  • 发现了许多类似的问题(标题),但没有一个解决了我的问题,所以这里是它。 我有一个JSON字符串,其中包含一些已知字段(应该始终存在)以及任意数量的未知/任意字段。 在此示例中,和是已知的字段。和是任意/未知的字段。 未知字段可以具有任何名称(键)和任何值。值类型可以是字符串、布尔值、float64 或 int。 我想要的是找到最简单、最优雅(惯用)的方法来解析这样的消息。 我使用了以下结构: 使用