Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby Sorbet没有拾取哈希签名的明显不匹配_Ruby_Sorbet - Fatal编程技术网

Ruby Sorbet没有拾取哈希签名的明显不匹配

Ruby Sorbet没有拾取哈希签名的明显不匹配,ruby,sorbet,Ruby,Sorbet,给定以下代码: # typed: strict extend T::Sig sig { params(x: T::Hash[String,String]).returns(NilClass) } def foo(x); end foo("foo" => 123) 我希望Sorbet能够识别传递的散列具有错误的值参数。如何正确声明签名以确保传递的哈希仅包含允许的值类型?不幸的是,这是Sorbet中的一个已知问题 你做的一切都对,冰糕让你失望。请随意关注这个问题,但我们估计这个特定

给定以下代码:

# typed: strict

extend T::Sig

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

foo("foo" => 123)


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

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


你做的一切都对,冰糕让你失望。请随意关注这个问题,但我们估计这个特定的bug将很难修复,由于我们试图维持的其他一些限制条件。

这可能不是最礼貌的意见,但任何人都不应该浪费时间使用sorbet。@Anotherm这是由于sorbet的特殊性还是由于对ruby键入的抵制?除了作为寻找问题的解决方案之外,对于它声称的问题来说,这是错误的解决方案解决。这是不必要的复杂性。这是不必要的性能开销。这是另一种DSL。如果有人认为他们真的需要它,那么他们就不应该使用Ruby。这一清单不胜枚举。这不仅仅是不必要的;它积极地浪费时间和资源。如果Stripe想把钱浪费在一个愚蠢的、有缺陷的虚荣项目上,那对他们来说是件好事,但我决不会付钱给开发人员,让他们浪费时间去做一些更慢、更复杂、更难被其他人采用的东西。