微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

只能从枚举数组中获取值的JSDoc文档参数

如何解决只能从枚举数组中获取值的JSDoc文档参数

我已经检查了本网站上是否有可能解决我的问题的答案,但都没有涵盖我的情况。

我有一个更改颜色并带有color参数的函数。该功能仅适用于COLORS枚举中包含的值。

/**
 * @enum ???
 * or
 * @typedef ???
 */
const COLORS = ['green','yellow','red','none',null];

/**
 * @param {???} color color value from COLORS array
 */
function changeColor(color) {
  if (!COLORS.includes(color)) return;
  // ...
}

我如何正确记录a)枚举COLORS和b)JSDoc中的函数参数color

编辑:看来我对enum的理解是错误的。从外观上看,文字数组不能视为enum。因此,如果我要坚持当前的实现方式,我还要如何明确指出color只能是COLORS中的值?

解决方法

基于@constanttypedef的JSDoc文档,对于constant,您可以执行以下示例:

/** @constant
    @typedef {Array} COLORS
    @type {Array<?string>}
    @default
*/

const COLORS = ['green','yellow','red','none',null];

PS:请注意,?用于声明Array值可以为字符串或null。有关更多信息,请查看@type文档中的Nullable类型。

对于Function

/**
 * @param {?string} color - The color used,one of {@link COLORS}.
 */
function changeColor(color) {
  if (!COLORS.includes(color)) return;
  // ...
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。