前提・実現したいこと
tyoescriptで入れ子になっているemployeeを取り出したい。
該当のソースコード
typescript
1const abcde: { 2 assEmployees: { 3 employees: Employee[]; 4 }[]; 5}[]
試したこと
const eee = abcde.pop();
const sss = eee.assEmployees.pop();
const ccc = sss.employees;
この用にpopを2回使って取り出そうとしたら
const sss = eee.assEmployees.pop();の行に
TypeError: Cannot read property 'assEmployees' of undefined
というエラーが発生しました。
補足情報(FW/ツールのバージョンなど)
入れ子の両方が、ただの型指定に過ぎず、値が入っていないように見えますが、
値が入っているオブジェクトをコンソールで確認はしてみましたか?
pop が破壊的操作だということはご存知ですか?
http://js.studio-kingdom.com/javascript/array/pop
ご回答いただきありがとうございます。
employeeには、値は入ってました。また、popが破壊的操作だということは初めて知りました。
pop意外に方法がありましたらその方法を教えて頂きたいです。
よろしくお願い致します。
> TypeError: Cannot read property 'assEmployees' of undefined
undefined の 'assEmployees' プロパティを読み取れませんと書いてあります。
つまりこの時点で eee は undefined です。
eee には abcd.pop() の結果が入っているので、abcd が空配列だということです。
この質問には abcd に何か入れているところは書いてありません。だからその中身は不明です。
Zushinさんの仰る通り、質問の構文では、親変数である、abcdにさえ中身が入ってない状態です。
なので、abcdに中身が入っている状態の構文の記載もお願いします。
また、abcdをコンソールで出力した結果も教えてください。
まずは、employeeの前に、abcdからみていくといいかと。
あなたの回答
tips
プレビュー