كتابة مثيل غير مكتمل من رميات Cannot read property 'id' of undefined
.
يجب أن ينتج عن رمز الإدخال التالي المشكلة:
var something = [];
if(something instanceof) {
// Notice the instanceof is missing the class name
}
أنا أستخدم حاليًا JSHint 2.9.3
أواجه هذه المشكلة من خلال حزمة atom linter-jshint مع jshint v2.9.3.
Error: C:\Users\emile.bergeron.CAMINO\.atom\packages\linter-jshint\node_modules\jshint\src\jshint.js:5386
throw err;
^
TypeError: Cannot read property 'id' of undefined
at C:\Users\emile.bergeron.CAMINO\.atom\packages\linter-jshint\node_modules\jshint\src\jshint.js:2131:14
at Object.x.led (C:\Users\emile.bergeron.CAMINO\.atom\packages\linter-jshint\node_modules\jshint\src\jshint.js:1155:16)
at expression (C:\Users\emile.bergeron.CAMINO\.atom\packages\linter-jshint\node_modules\jshint\src\jshint.js:926:36)
at C:\Users\emile.bergeron.CAMINO\.atom\packages\linter-jshint\node_modules\jshint\src\jshint.js:2051:18
at Object.x.led (C:\Users\emile.bergeron.CAMINO\.atom\packages\linter-jshint\node_modules\jshint\src\jshint.js:1155:16)
at expression (C:\Users\emile.bergeron.CAMINO\.atom\packages\linter-jshint\node_modules\jshint\src\jshint.js:926:36)
at Object.fud (C:\Users\emile.bergeron.CAMINO\.atom\packages\linter-jshint\node_modules\jshint\src\jshint.js:4423:22)
at expression (C:\Users\emile.bergeron.CAMINO\.atom\packages\linter-jshint\node_modules\jshint\src\jshint.js:885:32)
at statement (C:\Users\emile.bergeron.CAMINO\.atom\packages\linter-jshint\node_modules\jshint\src\jshint.js:1636:9)
at statements (C:\Users\emile.bergeron.CAMINO\.atom\packages\linter-jshint\node_modules\jshint\src\jshint.js:1681:16)
at ChildProcess.<anonymous> (C:\Users\emile.bergeron.CAMINO\.atom\packages\linter-jshint\node_modules\atom-linter\node_modules\sb-exec\lib\index.js:56:20)
at emitTwo (events.js:100:13)
at ChildProcess.emit (events.js:185:7)
at maybeClose (internal/child_process.js:850:16)
at Process.ChildProcess._handle.onexit (internal/child_process.js:215:5)
نفس الخطأ عند فتح تعليق مثل هذا:
module.exports = {
attributes: {},
/*sth: {},
sth2: function(){}
};
هل هذا ناتج عن أداة تعمل تلقائيًا على رمز يتم تحريره حاليًا؟
في الذرة أستخدم linter-jshint. ولكن أيضًا عند حفظ الملف بهذا المحتوى وتشغيل jshint من CLI حصلت على نفس الخطأ.
jshint test.js
في الملف
module.exports = {
attributes: {},
/*sth: {}
};
يولد خطأ:
/usr/local/lib/node_modules/jshint/src/jshint.js:5386
throw err;
^
TypeError: Cannot read property 'id' of null
at Object.x.nud (/usr/local/lib/node_modules/jshint/src/jshint.js:3240:26)
at expression (/usr/local/lib/node_modules/jshint/src/jshint.js:888:34)
at /usr/local/lib/node_modules/jshint/src/jshint.js:1389:20
at Object.x.led (/usr/local/lib/node_modules/jshint/src/jshint.js:1155:16)
at expression (/usr/local/lib/node_modules/jshint/src/jshint.js:926:36)
at statement (/usr/local/lib/node_modules/jshint/src/jshint.js:1636:9)
at statements (/usr/local/lib/node_modules/jshint/src/jshint.js:1681:16)
at itself (/usr/local/lib/node_modules/jshint/src/jshint.js:5365:9)
at lint (/usr/local/lib/node_modules/jshint/src/cli.js:495:8)
at /usr/local/lib/node_modules/jshint/src/cli.js:656:7
أعتقد أنه يجب أن يكون هناك خطأ في التحليل مثل "تعليق غير مغلق".
يبدو أنها مرتبطة بـ # 2932.
وبالنسبة إلى atom linter-jshint ، فإنها لا تزال تعمل على jshint v2.9.2. فتح إصدار AtomLinter / linter-jshint # 353 هناك لتحديث jshint.
إنه في الواقع يستخدم نطاقًا ، ولكن كتحديث يتطلب إعادة تثبيت الحزمة لمعظم المستخدمين ، سأقوم فقط بتثبيتها.
يمكنني أن أؤكد أنه يلقي نفس الخطأ في العرض التوضيحي لـ JSHint .
مؤكد؛ شكرا على التقرير! لقد أرسلت تصحيحًا لإصلاح هذا الخطأ: https://github.com/jshint/jshint/pull/3046.
التعليق الأكثر فائدة
مؤكد؛ شكرا على التقرير! لقد أرسلت تصحيحًا لإصلاح هذا الخطأ: https://github.com/jshint/jshint/pull/3046.