代码之家  ›  专栏  ›  技术社区  ›  Matthew Herbst

如何在JSDoc typedefs[duplicate]中干燥类似的属性

  •  0
  • Matthew Herbst  · 技术社区  · 6 年前

    * @property {String} field1 Foo bar 1
    * @property {Number} field2 Foo bar 2
    * @property {Number} field3 Foo bar 3
    * @property {String} field4 Foo bar 4
    

    有没有办法一次定义它们并在typedef中共享它们?例如,我想按照以下思路做一些事情:

    /**
     * @typedef GenericFields
     * @property {String} field1 Foo bar 1
     * @property {Number} field2 Foo bar 2
     * @property {Number} field3 Foo bar 3
     * @property {String} field4 Foo bar 4
     */
    
    /**
     * @typedef SomeType
     * @property {String} nonGenericField Bar foo
     * ...{GenericFields}
     */
    

    有可能吗?

    1 回复  |  直到 6 年前
        1
  •  1
  •   Graham P Heath Bergi    6 年前

    我怀疑您可能需要一个记录(或接口):

    https://github.com/google/closure-compiler/wiki/Annotating-JavaScript-for-the-Closure-Compiler#interface-record

    记录和接口定义了相同的概念。它们都用来决定一个函数或类是否实现了与另一个函数或类互操作所需的一切。

    接口通过一个名称来实现这一点;只有当使用相同的名称时,才满足有效接口的条件。

    记录通过一个结构来实现这一点;只有当结构匹配时,才满足有效记录的条件。

    @extends {Type} .