このコードを考えてみましょう:
var a = [];
for (var i in a)
/* nothing */;
var i : number;
i = 9;
これをコンパイルすると、コンパイラは最後の行について「「数値」を「文字列」に変換できません」と文句を言います。
おそらくfor..inループは文字列として作成されますが、コンパイラが文句を言うまで待つのではなく、i
文句を言うことを期待していました。var i : number
i = 9
に変更var i : number
してvar i : number = 8
も、コンパイラはに達するまで文句を言いませんi = 9
。
これはバグですか、それとも何かが足りませんか?