我正在尝试将冰糕类型信息添加到我的 gem pdf 阅读器中。我不希望 sorbet 成为 gem 的运行时依赖项,因此所有类型注释都在rbi/
目录中的外部文件中。我也不能T::Sig
在我的课程中扩展。
我想typed: strict
在某些文件中启用,但这样做表明我正在使用一些没有类型注释的实例变量:
./lib/pdf/reader/rectangle.rb:94: Use of undeclared variable @bottom_left https://srb.help/6002
94 | @bottom_left = PDF::Reader::Point.new(
^^^^^^^^^^^^
./lib/pdf/reader/rectangle.rb:98: Use of undeclared variable @bottom_right https://srb.help/6002
98 | @bottom_right = PDF::Reader::Point.new(
^^^^^^^^^^^^^
./lib/pdf/reader/rectangle.rb:102: Use of undeclared variable @top_left https://srb.help/6002
102 | @top_left = PDF::Reader::Point.new(
^^^^^^^^^
./lib/pdf/reader/rectangle.rb:106: Use of undeclared variable @top_right https://srb.help/6002
106 | @top_right = PDF::Reader::Point.new(
建议的修复方法是使用T.let()
:
@top_right = T.let(PDF::Reader::Point.new(0,0), PDF::Reader::Point)
但是我不能这样做,因为它需要对冰糕的运行时依赖。
是否可以在 rbi 文件中记录实例变量的注释?