通过在 JSDoc 上添加值契约来实现参数和结果的函数签名条件参数值限制,LT

问题描述

如您所知,jsdoc 和类似的 javadoc 允许描述和验证函数签名。它允许描述可能的类型、枚举、自定义类型甚至可能的值列表。 https://apidocjs.com#param-api-param,How to document a string type in jsdoc with limited possible values .

但我找不到常规比较器 less than (&lt; <) 或外部自定义函数的示例。甚至更多:我不仅需要十进制数,还需要例如也适用于四舍五入的浮点数/双精度数。

P.S.:你可以告诉我,jsdoc 只用于文档生成和人类阅读,人类无法阅读此类功能,但这是错误的。已经有很多通过jsdoc格式进行自动检查的解决方案(例如TypeScript和ESLint,但它们无法检查输入输出的运行时完整性和价值契约)。

运行时检查中请求的简化示例:

/**
 * @param {number} height
 * @param {string} firstname
 * @param {string} nickname
 *
 * @pre height > 100 && (firstname || nickname.length >= 4)
 */
function setState (height,firstname,nickname) {
  ...
}

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)