[英]JsDoc: How do I document that an object can have arbritrary (unknown) properties but with a particular type?
[英]How can I properly document vue properties with type "Object" using jsDoc?
我想要实现的是记录具有“对象”类型的属性,例如
props: {
foo: {
type: Object,
required: true
}
}
现在这个对象foo
可以并且将会有多个条目,其中一些是强制性的,而另一些是可选的。 例如
<my-component
:foo="{
mandatoryItem1: 'bar',
mandatoryItem2: {
mayBeEvenNested: true
},
optionalItem1: 'baz',
...
}"
/>
问题是,在使用属性时,您必须检查组件的源代码以了解属性中必须存在哪些条目。 虽然使用 typescript 来消除这个问题会很好,但我们现在不能切换到 TS,所以我们必须使用 jsDoc。 我们希望以正确的方式做到这一点。
在记录函数及其参数时,您可以像这样(或类似的)描述嵌套的参数对象:
/**
* @param bar {Object} object containg...
* @param bar.mandatoryItem1 {String} ...
* @param bar.mandatoryItem2 {Object} ...
* @param bar.mandatoryItem2.mayBeEvenNested {Boolean} ...
*/
function foo(bar) {
}
我如何对 vue 属性执行相同或类似的操作?
理想情况下,我们希望将来使用类似 vue-styleguidist 的东西,因此使用 jsDoc 自动为我们的组件生成文档,因此使用“正确”语法很重要。
PS:我们希望对类型为“Array”的属性进行相同的操作,即描述数组中的对象的外观。
你应该有这样的事情:
/**
* @typedef {Object} Bar
* @param {String} mandatoryItem1
* @param {OtherObj} mandatoryItem2
*/
export default {
name: 'my-component',
props: {
/** @type {Bar} */
foo: { type: Object, required: true }
}
}
其中OtherObj
是另一种类型定义。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.