1

给定以下代码:

# typed: strict

extend T::Sig

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

foo("foo" => 123)

游乐场链接

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

4

1 回答 1

2

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

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

你做的一切都是对的,而冰糕让你失望了。随意关注这个问题,但我们估计这个特定的错误将很难修复,因为我们试图维护一些其他限制。

于 2019-10-25T21:07:51.427 回答