首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用jsDoc正确地记录具有"Object“类型的vue属性?

如何使用jsDoc正确地记录具有"Object“类型的vue属性?
EN

Stack Overflow用户
提问于 2021-10-13 07:48:25
回答 1查看 1.2K关注 0票数 2

我试图实现的是记录具有"Object“类型的属性。

代码语言:javascript
复制
props: {
    foo: {
        type: Object,
        required: true
    }
}

现在,这个对象foo可以并将有多个条目,其中一些是强制性的,而另一些则是可选的。例如:

代码语言:javascript
复制
<my-component 
   :foo="{
        mandatoryItem1: 'bar',
        mandatoryItem2: {
            mayBeEvenNested: true
        },
        optionalItem1: 'baz',
        ...
    }"
/>

问题是,在使用该属性时,您必须检查组件的源代码,才能知道属性中必须有哪些条目。虽然使用打字本也可以消除这个问题,但是我们现在不能切换到TS,所以我们不得不使用jsDoc。我们希望这样做是正确的。

在记录函数及其参数时,可以描述这样的嵌套参数对象(或类似的内容):

代码语言:javascript
复制
/**
 * @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“类型的属性,我们希望使用相同的方法,即描述数组中的对象的样子。

EN

回答 1

Stack Overflow用户

发布于 2021-12-24 15:58:37

你应该有这样的东西:

代码语言:javascript
复制
/**
 * @typedef {Object} Bar
 * @param {String} mandatoryItem1
 * @param {OtherObj} mandatoryItem2
 */

export default {
  name: 'my-component',
  props: {
    /** @type {Bar} */
    foo: { type: Object, required: true }
  }
}

其中OtherObj是另一个类型定义。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69551578

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档