[javascript] تجاهل خاصية أخطاء Typescript "غير موجودة في قيمة النوع"


3 Answers

الحل السريع والقذر هو أن يلقي صراحة على any

(y as any).x

"الميزة" هي أنه ، يتم noImplicitAny كونه صريحًا ، noImplicitAny هذا حتى مع مجموعة علامة noImplicitAny .

الحل المناسب هو تحديث ملف تعريف الملفات.

يرجى ملاحظة أنه عندما تقوم بإدخال متغير إلى any ، فإنك تختار عدم التحقق من النوع لهذا المتغير.

نظرًا لأنني في وضع إخلاء المسؤولية ، يمكن أن يكون الصيغ المزدوج عبر any واجهة مقترنة بواجهة جديدة مفيدًا في المواقف التي تكون فيها

  • لا تريد تحديث ملف typed مكسورة
  • هي ترميم القرد

حتى الآن ، ما زلت تريد شكلاً من أشكال الكتابة.

لنفترض أنك تريد تصحيح تعريف مثيل y من النوع OrginalDef مع خاصية x الجديدة من نوع number :

const y: OriginalDef = ...

interface DefWithNewProperties extends OriginalDef {
    x: number
}

const patched = y as any as DefWithNewProperties

patched.x = ....   //will compile
Question

في بناء VS2013 توقف عندما يخرج tsc مع رمز 1. لم يكن هذا هو الحال في VS2012.

كيف يمكنني تشغيل الحل الخاص بي مع تجاهل الخطأ tsc.exe؟

أحصل على العديد من The property 'x' does not exist on value of type 'y' أخطاء The property 'x' does not exist on value of type 'y' التي أريد تجاهلها عند استخدام وظائف javascript.




واجهت مشكلة في Angular2 ، كنت أستخدم التخزين المحلي لحفظ شيء ما ولن يسمح لي بذلك.

محاليل:

كان لدي localStorage.city -> error -> Property 'city' does not exist on type 'Storage'.

كيف تصلحها:

التخزين المحلي [ 'المدينة']

(التخزين المحلي) .city

(localStorage as any) .city




يمكنك أيضًا استخدام الحيلة التالية:

yx = "some custom property"//gives typescript error

y["x"] = "some custom property"//no errors

لاحظ أنه للوصول إلى x وعدم الحصول على خطأ في الطباعة مرة أخرى تحتاج إلى كتابته مثل ذلك y["x"] ، وليس yx . ومن هذا المنظور ، فإن الخيارات الأخرى أفضل.




لقد تمكنت من تجاوز هذا في typScript باستخدام أشياء مثل:

let x = [ //data inside array ];
let y = new Map<any, any>();
for (var i=0; i<x.length; i++) {
    y.set(x[i], //value for this key here);
}

يبدو أن هذا هو السبيل الوحيد الذي يمكنني من استخدام القيم داخل X كمفاتيح للخريطة Y وترجمة.






Related