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
相关产品推荐
相关产品推荐

