我的test_helper.rb中有以下代码
require 'simplecov'
class SimpleCov::Formatter::MergedFormatter
def format(result)
simplecov = T.unsafe(SimpleCov::Formatter::HTMLFormatter).new
T.unsafe(simplecov.format(result))
end
end
字符串
这个gem很老了,没有.rbi
文件。我不明白的是www.example.com上的文档https://sorbet.org/docs/error-reference#5002
它来自一个宝石吗?Sorbet不会查看gem的源代码。相反,这个gem必须有一个 *.rbi文件。尝试查找与此gem对应的 *.rbi,并在其中搜索常量。
但是这个gem没有任何rbi文件。
Sorbet将SimpleCov::Formatter::HTMLFormatter
自动更正为RuboCop::Formatter::HTMLFormatter
这个错误:无法解析常量HTMLFormatter https://srb.help/5002
但对象是完全正常的,而且我已经把它 Package 在T.unsafe(...)
中,它仍然自动校正。
预期结果:我怎么能逃脱这个舱口?(我也试过在文件顶部设置# typed: false
,但冰糕仍然在这一行抱怨)
1条答案
按热度按时间wtzytmuj1#
采用冰糕的最低门槛是所有常量(即类/模块)来解决。在这种情况下,Sorbet不知道常数
SimpleCov::Formatter::HTMLFormatter
,所以它不能处理它,不管T.unsafe
是否存在。我希望你使用建议的基于木薯的工作流程来生成你的RBI文件,在这种情况下,应该为你生成simplecov的RBI文件。您不需要从某处为gem找到
.rbi
文件,Tapioca将从gem本身生成它。如果您使用的是不同的工作流,您可以轻松地创建一个RBI文件(最好在
sorbet/rbi
文件夹下),该文件定义了常量和任何方法,您需要在它上解锁。类似下面的内容应该可以很好地用于您的示例:字符串