Tslint: استخدام غير آمن للتعبير من النوع "أي".

تم إنشاؤها على ٥ يناير ٢٠١٨  ·  3تعليقات  ·  مصدر: palantir/tslint

تقرير الشوائب

  • __ إصدار TSLint__: 5.8.0
  • __نسخة TypeScript__: 2.6.2
  • __تشغيل TSLint عبر__: Node.js API

يتم فحص كود TypeScript

const json: {} | null | undefined = JSON.parse(queryData);

إعدادات

{
    "defaultSeverity": "error",
    "extends": [
        "tslint:all"
    ],
    "rules": {
    }
}

السلوك الفعلي

استخدام غير آمن للتعبير من النوع "أي".

سلوك متوقع

يمكنني أن أفعل const json: any = JSON.parse(queryData); لكني أريد الاحتفاظ بقواعد no-any
كيف يمكنني الحصول على إرجاع JSON.parse دون استخدام تعبير غير آمن من النوع "أي".

Not A Bug

ال 3 كومينتر

لست متأكدًا حقًا مما تتوقعه هنا ... هل تريد استخدام any ، لكنك تريد الاحتفاظ بقاعدة no-any ؟ هذا يتناقض تماما مع بعضها البعض. ما الذي يمنعك من مجرد التصريح عن نوع المطابقة لبيانات الاستعلام ثم تنفيذ const json: YourType = JSON.parse(queryData); ؟

شكرا على الرد. لم أكن واضحا
هدفي هو الاحتفاظ بالقواعد no-any وأبحث عن طريقة للحصول على نتيجة JSON.parse (queryData) دون سابق إنذار.

الآن أفعل json: any = JSON.parse (queryData) ؛ => ولكن لا بد لي من تعطيل أي.
إذا قمت بالحل الخاص بك: const json: YourType = JSON.parse (queryData) ؛
وسأضطر بعد ذلك إلى تعطيل قواعد "عدم الأمان".

هذا هو السبب الذي جعلني في طريقي الأول أحاول: const json: {} | فارغ | undefined = JSON.parse (queryData) ، بالنظر إلى المستند https://palantir.github.io/tslint/rules/no-unsafe-any/ => لن أحصل على no-non-safe-any ولا يوجد أي تحذير.

لكن يمكن أيضًا أن يُرجع JSON.parse نوعًا آخر مثل السلسلة ، لذا فإن هذا الحل ليس هو الحل.
أنا في الواقع لست متأكدًا من وجود حل ولكن قبل أن أسألكم المتخصصين يا رفاق.

ohrrkan حالة الاستخدام الخاصة بك هي حالة جيدة - عادة ما يفعله الناس هو JSON.parse(queryData) as MyType . إغلاق هذا باعتباره غير قابل للتنفيذ في الوقت الحالي ، نظرًا لعدم وجود طلب كبير على أي إجراء من جانب TSLint. امل ان يساعد!

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات