获取-实例变量必须在initialize
内部声明,即使我已经在initialize中声明了实例变量。
我正在使用typed: strict
输入检查我的红宝石代码。我正在使用实例变量@updated
的实例方法之一。 Sorbet抛出一个错误-“使用未声明的变量”。我创建了一个初始化方法来声明它。然后将“使用未声明的变量”替换为“必须在initialize
内声明实例变量”
sig{returns(<<redacted>>)}
def initialize
@updated = T.let(Time.now, Time)
self
end
错误是-
Instance variables must be declared inside `initialize` https://srb.help/5005
39 | @updated = T.let(Time.now, Time)
预期-应该不会有任何错误,因为在def initialize
中声明了实例变量
编辑:我在Sorbet Playground
中复制了此内容# typed: strict
class A
extend T::Sig
sig {returns(Integer)}
attr_accessor :x
sig {params(y: Integer).void}
def initiazlize(y)
@x = y
end
sig{returns(Integer)}
def simple_operation
@x = 5
@x
end
end
# -- error
editor.rb:10: Instance variables must be declared inside `initialize` https://srb.help/5005
10 | @x = T.let(y, Integer)
^^
Errors: 1