Sorbet正在显示attr_reader的错误,但是请纠正我,如果我错了,则在声明该函数(而不是调用该函数)时需要sig,对吗?
我已经尝试过文档,但我得到的只是这份笔记
注意:许多看起来像局部变量的Ruby构造实际上是没有括号的方法调用!具体来说,请注意attr_reader和零参数方法定义。
app/util/hodor.rb:125: This function does not have a `sig` https://sorbet.org/docs/error-reference#7017
125 | attr_reader(:collection_name)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Run Code Online (Sandbox Code Playgroud)
该错误与attr_reader方法本身不需要有关sig,而是与有关:collection_name。的签名attr_reader是已知的,但是它动态创建的新方法#collection_name没有已知的sig,Sorbet希望这是您提供签名的地方。
您可以执行以下操作来修复它:
sig { returns(String) }
attr_reader(:collection_name)
Run Code Online (Sandbox Code Playgroud)
小智 1
attr_reader(attribute)相当于:
def attribute
@attribute
end
Run Code Online (Sandbox Code Playgroud)
这可能就是 Sorbet 要求签名的原因。
| 归档时间: |
|
| 查看次数: |
261 次 |
| 最近记录: |