如何在JSDoc typedef中干燥相似的属性

时间:2018-10-10 18:42:33

标签: javascript jsdoc

我有几个typedef都包含以下字段:

* @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 个答案:

答案 0 :(得分:1)

我怀疑您可能想要记录(或界面):

https://jdk.java.net/11/

一条记录和一个界面定义了相同的想法。它们都用于确定一个函数或类是否实现了它需要与另一个函数互操作的一切。

接口通过名称来完成此操作;仅当使用相同的名称时,才能满足有效接口的条件。

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

您使用@extends {Type}实现接口(和记录)。