冰糕没有发现哈希签名的明显不匹配

Sorbet not picking up obvious mismatch of Hash signature

给定以下代码:

# typed: strict

extend T::Sig

sig { params(x: T::Hash[String,String]).returns(NilClass) }
def foo(x); end

foo("foo" => 123)

Playground Link

我希望 Sorbet 能够识别传递的散列具有错误的值参数。我如何才能正确声明一个签名,以确保传递的哈希仅包含允许的值类型?

不幸的是,这是 Sorbet 中的一个已知问题

https://github.com/sorbet/sorbet/issues/713

你做的一切都很好,冰糕让你失望了。请随时关注这个问题,但我们估计这个特定的错误将很难修复,因为我们正在努力维护一些其他限制。