给定以下代码:
# typed: strict
extend T::Sig
sig { params(x: T::Hash[String,String]).returns(NilClass) }
def foo(x); end
foo("foo" => 123)
我希望 Sorbet 能够识别传递的哈希值参数错误。如何正确声明一个签名,以确保传递的哈希仅包含允许的值类型?
不幸的是,这是 Sorbet 中的一个已知问题
https://github.com/sorbet/sorbet/issues/713
你做的一切都是对的,而冰糕让你失望了。随意关注这个问题,但我们估计这个特定的错误将很难修复,因为我们试图维护一些其他限制。