جافاسكريبت - نوع المصفوفة باستخدام Array<T> ممنوع
يقوم Ttslint الخاص بي بإعطاء تحذير مع هذا البناء (نوع المصفوفة باستخدام Array ممنوع. استخدم T[] بدلاً منه (array-type) ):
Array<string | null> | null
هل هذا هو الاستبدال الصحيح للنسخة السابقة؟
(string | null)[] | null
الإجابة رقم 1
نعم، هذا هو السلوك الذي يفرضه قاعدة نوع المصفوفة، عندما يتم ضبطها على "array":
يجب تقديم واحد من الحجج التالية:
*"array"يفرض استخدامT[]لجميع الأنواعT.
*"generic"يفرض استخدام Array لجميع الأنواعT.
*"array-simple"يفرض استخدامT[]إذا كانTنوعًا بسيطًا (أوليًا أو مرجع نوع).
يمكنك تعطيل القاعدة للملف بأكمله عن طريق إنشاء ملف tslint.json في نفس المجلد الموجود فيه الملف (أو في مجلد أعلى من الملف) وكتابة ما يلي بداخله:
"rules": {
"array-type": false
}
إذا كنت تريد اختيار أحد الإعدادات الأخرى:
"rules": {
"array-type": [true, "generic"]
}
وكما ذكرت في سؤالك، المعادل لـ:
Array<string | null> | null
هو :
(string | null)[] | null
الإجابة رقم 2
الإجابة المقبولة صحيحة في حال كنت تستخدم (tslint الذي أصبح مهمل الآن)، إذا كنت تستخدم typescript-eslint يجب كتابة القاعدة على النحو التالي:
"@typescript-eslint/array-type": ["error", { "default": "generic" }],
