我有一个函数工厂
:
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中提升出来。
可以使用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。 我想要的是找到最简单、最优雅(惯用)的方法来解析这样的消息。 我使用了以下结构: 使用