JSDoc 如何添加对象的任何附加属性?

问题描述 投票:0回答:1

我有一个 typedef 的 JSDoc 注释,如下所示,

/**
 * Lorem ipsum dolor...
 * @typedef {Object} NotificationOptions
 * @property {boolean} foo - Property 1
 * @property {boolean} bar - Property 2
 */

除了 foo 和 bar 之外,如何向对象添加任何其他属性? (属性可以是任何类型,因此类型灵活)

我有一个关于打字稿接口定义的示例,如下所示。我希望我的 JSDoc 与 TS 上的接口定义具有类似的效果。

export interface FooBar {
  foo: boolean;
  bar: boolean;
  [key: string]: any;
}

我知道它是可选的,并且代码可以在没有 typedef 的情况下顺利运行。只是好奇,想要有一个干净、良好的代码。

谢谢!

javascript jsdoc
1个回答
0
投票

啊哈!一直试图弄清楚这一点,我没有在其他地方看到它的记录,但这似乎可以解决问题:

/**
 * Lorem ipsum dolor...
 * @typedef {Object} PartialNotificationOptions
 * @property {boolean} foo - Property 1
 * @property {boolean} bar - Property 2
 * @typedef {PartialNotificationsOptions & Omit<object,
 *   "foo", "bar"
 * >} NotificationOptions
 */

我们允许该部分对象以及通用“对象”类型(可以是任何东西)中定义的任何键,但明确排除先前定义的键,以指示不允许对具有不同类型的这些键的任何引用。

© www.soinside.com 2019 - 2024. All rights reserved.