我想了解为什么 Sorbet 不抱怨这个例子:例子:
sig {params(x: T::Hash[String, String]).void}
def foo(x)
x.each do |k, v|
puts "key = #{k}, value = #{v}"
end
end
hash = {}
hash[1] = 1
foo(hash) # I'd expect this to fail to type-check
我已经声明foo
接受 [String, String] 的哈希值,但我传递了 [Integer, Integer] 的哈希值。我以为冰糕会在这里抱怨...
有没有办法让它在这种情况下出错?