for
TypeScript のドキュメントでは、 orのようなループについては何も述べていませんfor-in
。言語で遊んでみると、any
orstring
変数のみがfor
ループでサポートされているようです。
なぜこの決定が下されたのですか?
型情報を使用して、厳密に型指定された反復変数を持たないのはなぜですか?
for
TypeScript のドキュメントでは、 orのようなループについては何も述べていませんfor-in
。言語で遊んでみると、any
orstring
変数のみがfor
ループでサポートされているようです。
なぜこの決定が下されたのですか?
型情報を使用して、厳密に型指定された反復変数を持たないのはなぜですか?
TypeScript は、自分の足を撃つための銃を提供していません。
iterator 変数は string 、ピリオドなので文字列です。観察:
var obj = {};
obj['0'] = 'quote zero quote';
obj[0.0] = 'zero point zero';
obj['[object Object]'] = 'literal string "[object Object]"';
obj[<any>obj] = 'this obj'
obj[<any>undefined] = 'undefined';
obj[<any>"undefined"] = 'the literal string "undefined"';
for(var key in obj) {
console.log('Type: ' + typeof key);
console.log(key + ' => ' + obj[key]);
}
現在、キーと値のペアはいくつありobj
ますか? 6、多かれ少なかれ?いいえ、3、すべてのキーは文字列です。
Type: string
0 => zero point zero
Type: string
[object Object] => this obj;
Type: string
undefined => the literal string "undefined"
for-inステートメントは、実際にはオブジェクトのプロパティを列挙するためにあります。これは、TypeScriptでの実装方法です。配列での使用にはいくつかの問題があります。
TypeScriptチームを代表して話すことはできませんが、これがこの言語での実装の理由であると思います。