You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

YARD文档如何标注任意类型参数?有无对应编写约定?

YARD 标注任意类型参数的方法

YARD 没有提供和 TypeScript Any 完全同名的内置类型关键字,社区通用约定是用 Ruby 的顶层父类类型来表示「可传入任意类型值」的语义:

  • 绝大多数常规场景下,直接标注类型为 Object 即可。Ruby 中几乎所有常用对象都继承自 Object,这个写法的语义和 TS 的 Any 完全对齐,也是所有YARD工具、文档生成器都能正确识别的标准写法。
  • 如果你需要极端严格地覆盖所有可能的 Ruby 值(包括直接继承 BasicObject、不继承 Object 的极简对象实例),可以标注为 BasicObject,但日常业务开发几乎不会遇到这类场景。

你示例中写的 [?] 不是YARD可识别的合法类型标注,不会被文档工具正确解析。

标准写法示例如下:

# @param [Object] var1 可传入任意类型的值
def create_foo(var1)
  # var1 could be anything
end

如果参数除了任意类型值之外还允许传入 nil,可以标注为 [Object, nil]。


内容的提问来源于stack exchange,提问作者Nikita Fedyashev

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.03 09:51:24