У меня есть переменная типа Dynamic, и я точно знаю одно из ее полей, назовем его a, на самом деле это массив. Но когда я пишу
var d : Dynamic = getDynamic();
for (t in d.a) {
}
Я получаю ошибку компиляции во второй строке:
You can't iterate on a Dynamic value, please specify Iterator or Iterable
Как я могу сделать это компилируемым?



Haxe не может перебирать переменные Dynamic (как говорит компилятор).
Вы можете заставить его работать несколькими способами, из которых, вероятно, самый простой (в зависимости от вашей ситуации):
var d : {a:Array<Dynamic>} = getDynamic();
for (t in d.a) { ... }
Вы также можете изменить Dynamic на тип содержимого массива.
Другой способ сделать то же самое - использовать дополнительную временную переменную и явную типизацию:
var d = getDynamic();
var a: Array<Dynamic> = d.a;
for (t in a) { ... }
Можно ли использовать несколько типов массива <Dynamic>, например
[0, "Second element", ["Nested array here!"], "another string"]?