javascript - 对象内的动态键名
问题描述
我正在尝试执行以下操作:我有一个看起来像这样的对象
const object = {
healthcheck: [
{ method: 'get', name: 'test' }
],
users: [
{ method: 'get', name: 'auth' }
],
};
所以我有一个有键的对象,每个键可以是任何字符串,每个键都是一个对象数组,以方法和名称为键。
如何使用 JSDoc 在对象内提供带有动态键的智能感知?
谢谢!
解决方案
您可以通过以下语法键入提示动态键:{[key: string]: any}
,因此在您的情况下,这应该得到您正在寻找的结果:
/**
* @typedef {{
* [key: string]: [{
* method: string,
* name: string
* }]
* }} MyObject
*/
/**
* @type {MyObject}
*/
const object = {
healthcheck: [
{ method: 'get', name: 'test' }
],
users: [
{ method: 'get', name: 'auth' }
],
}
typedef 是为了方便在代码的各个地方使用类型,但如果需要智能感知来显示类型的完整形状,可以直接使用类型:
/**
* @param {{
* [key: string]: [{
* method: string,
* name: string
* }]
* }} routes
*/
const xt = routes => {}
推荐阅读
- reactjs - 在 React Web 应用程序中定义联系我们表单的模型时如何包含 textarea 字段
- ansible - 如何将目录从远程机器复制到本地主机?
- javascript - 有没有办法修改数组中允许的值的标准?
- kubernetes - 如何为 istio 入口网关添加自定义端口?
- ssl - 需要从在线提供商处创建公钥基础设施的指导
- ios - 由于未捕获的异常“NSInvalidArgumentException”,我的 Xcode 应用程序在尝试实现 NSFetchedResultsController 后崩溃
- sql - 有条件地应用唯一索引
- kotlin - 使用 UTF-16LE 编码创建文件
- vba - 仅将更改的文本复制到剪贴板
- vba - 如何引用回复的原始邮件?