javascript エラー「Uncaught TypeError: Cannot convert undefined or null to object」の解決方法
- 作成日 2023.02.27
- javascript
- javascript
javascriptで、エラー「Uncaught TypeError: Cannot convert undefined or null to object」が発生した場合の原因と解決方法を記述してます。「Object.assign」に「undefined」や「null」を使用した場合に発生します。「chrome」や「firefox」や「safari」の各ブラウザのエラーメッセージの画像もキャプチャしてます。
環境
- OS windows11 pro 64bit
- Apache 2.4.43
- ブラウザ chrome 107.0.5304.107
エラー内容
以下の、オブジェクトをマージするコードで発生。
const obj1 = undefined;
const obj2 = {a:1};
Object.assign(obj1, obj2);
console.log(obj1);
エラーメッセージ
Uncaught TypeError: Cannot convert undefined or null to object
画像
firefox106の場合では、以下のエラーが発生します。
Uncaught TypeError: can't convert undefined to object
画像
safari15.5では、以下のエラーとなります。
TypeError: Object.assign requires that input parameter not be null or undefined
画像
原因
「Object.assign」はオブジェクトをパラメーターに指定してるため。
const obj1 = {b:1};
const obj2 = {a:1};
Object.assign(obj1, obj2);
console.log(obj1);
// {b: 1, a: 1}
解決方法
判定してから使用する
const obj1 = undefined;
const obj2 = {a:1};
if (obj1) {
Object.assign(obj1, obj2);
}
console.log(obj1);
// undefined
その他のエラー
「Object.keys」や「Object.values」にも「undefined」や「null」を使用しても発生します。
const obj = undefined;
Object.keys(obj);
// Uncaught TypeError: Cannot convert undefined or null to object
or
const obj = null;
Object.values(obj);
// Uncaught TypeError: Cannot convert undefined or null to object
-
前の記事
Dart double型からInt型に変換する 2023.02.27
-
次の記事
mac コマンドの実行結果を変数として扱う 2023.02.27
コメントを書く