Проверка типа Sorbet только во время выполнения - PullRequest
0 голосов
/ 07 января 2020

У меня есть несколько фигур, которые я хочу проверить по отношению к ха sh. Тем не менее, до времени выполнения неизвестно, какую форму использовать. Предлагает ли Sorbet способ T.assert_type! только во время выполнения?

# typed: strict
extend T::Sig

sig do
  params(
    data: T::Hash[String, T.untyped],
    schema: T.untyped,
  ).returns(T::Boolean)
end
def runtime_check(data, schema)
  T.assert_type!(data, schema)
  return true
rescue TypeError
  return false
end

Schema = T.type_alias do
  {"foo" => String}
end

runtime_check({"foo" => "bar"}, Schema)

пример sorbet.run

...