这与问题30360391类似。我想表达的是函数的参数是一个普通的JS对象,它可以具有任意属性(具有未知名称),但所有属性本身都是具有固定属性的对象。
例如:函数就像这样。
一个典型的
我已经有了。
我仍然需要一个`typedef`来表示`Descriptor`,它基本上表达了`Descriptor`是一个具有任意属性但所有属性都是`DescriptorEntry`类型的对象。伪代码如下:
当然,星号
例如:函数就像这样。
/**
* @param {Descriptor} desc
*/
function foo( desc ) {
// ...
}
一个典型的
desc
看起来像这样desc = {
unknownEntity1: {
priority: 5,
writable: false,
},
unknownEntity2: {
priority: 42,
writable: true,
},
unknownEntity3: {
priority: 9,
writable: false,
}
}
我已经有了。
/**
* @typedef {Object} DescriptorEntry
* @property {number} priority - The priority of the entity
* @property {boolean} writable - True, if the entity can be modified
*/
我仍然需要一个`typedef`来表示`Descriptor`,它基本上表达了`Descriptor`是一个具有任意属性但所有属性都是`DescriptorEntry`类型的对象。伪代码如下:
/**
* @typedef {Object} Descriptor
* @property {DescriptorEntry} *
*/
当然,星号
*
作为“任何属性”的通配符在 Jsdoc 语法中是无效的。但是我应该如何正确使用它呢?
for(let key in desc)
时,仍会出现“可能对自定义/继承属性进行迭代”的诊断提示。 - Szczepan Hołyszewski