const json: {} | null | undefined = JSON.parse(queryData);
{
"defaultSeverity": "error",
"extends": [
"tslint:all"
],
"rules": {
}
}
استخدام غير آمن للتعبير من النوع "أي".
يمكنني أن أفعل const json: any = JSON.parse(queryData);
لكني أريد الاحتفاظ بقواعد no-any
كيف يمكنني الحصول على إرجاع JSON.parse دون استخدام تعبير غير آمن من النوع "أي".
لست متأكدًا حقًا مما تتوقعه هنا ... هل تريد استخدام 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. امل ان يساعد!