在RubyMine中,我可以写
# @param [Array<MyClass>] things
def foo(things)
end
和RubyMine将为
things.first.*
自动完成MyClass方法。但是,当我遍历每个对象时,例如:# @param [Array<MyClass>] things
def foo(things)
things.each { |t| t.* }
end
RubyMine丢失了类型推断。我知道我可以添加注释来指定块参数类型,但是循环遍历某种类型的对象无论如何应该只产生该类型的参数。
有什么方法可以为RubyMine编写自定义规则,以便
.each
,.map
和其他迭代器假定具有其调用的变量类型? 最佳答案
根据我的研究,您似乎可以这样注释:
# @param [Array<MyClass>] things
def foo(things)
things.each {
# @type [MyClass] t
|t|
t.*
}
end
资料来源:https://youtrack.jetbrains.com/issue/RUBY-9142#comment=27-787975
关于ruby-on-rails - RubyMine-自动检测.each,.map和其他迭代器类型,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39079012/