У меня есть метод, который анализирует файлы YAML. Возвращаемый объект - это вложенный Ha sh, где ключи всегда являются строками, а конечные значения всегда являются строками, например,
{
"a" => "foo",
"b" => {
"c" => "bar",
"d" => "baz"
}
}
Я не знаю заранее, насколько глубоко ha sh есть.
Ближе всего к вводу возвращаемого значения мне подошла следующая подпись:
T.any(T::Hash[String,String], T::Hash[String,T::Hash[String, T.untyped]])
Это, очевидно, плохое решение, поскольку оно не проверяет ничего ниже второго вложения, но документация о настраиваемых типах кажется немного скудной.
Есть ли способ ввести вложенные хэши, используя настраиваемый тип, вложенные типы или что-то подобное?