はじめに
- 以下のコードの通り、配列の中にプロパティが入るコードを書いてみた所コンパイルエラーにもならず実行も問題なかった
- ただ個人的に「配列の中にプロパティが入る?」のが気になったため記事にまとめた
sample.ts
let anything: any = [123, '123'];
anything.dummy = "dummy";
console.log(anything);
console.log(typeof anything);
console.log(anything[0]);
console.log(anything[1]);
console.log(anything[2]);
console.log(anything.dummy);
sample.js
var anything = [123, '123'];
anything.dummy = "dummy";
console.log(anything);
console.log(typeof anything);
console.log(anything[0]);
console.log(anything[1]);
console.log(anything[2]);
console.log(anything.dummy);
実行結果
$ node ./sample.js
[ 123, '123', dummy: 'dummy' ]
object
123
123
undefined
dummy
気になった箇所
気になった箇所
[ 123, '123', dummy: 'dummy' ]
- 配列の中にプロパティ(キー&バリュー)があるのに成立しているのが良く分からなかった
結論
- 以下のコードから、
- 配列の要素として参照しようとしても参照が不可
- プロパティとして参照しようとすると可能
- 「配列の要素では無い」と言われているようなモノ
[ 123, '123', dummy: 'dummy' ]
console.log(anything[2]); //=> undefined
console.log(anything.dummy); //=> dummy
console.log(anything.length); //=> 2