Vscode-ng-language-service: الميزة: فحص نوع ربط إدخال القالب

تم إنشاؤها على ١١ أغسطس ٢٠١٧  ·  7تعليقات  ·  مصدر: angular/vscode-ng-language-service

الآن عند استخدام ربط الإدخال لـ _Directive_ أو _Component_ يتم التحقق من وجود المتغير المستخدم وهو مثالي. لكن هذا الفحص لا يتحقق مما إذا كان الإدخال والمتغير المخصص له من نفس النوع.

سيكون مثاليًا تمامًا إذا كان سيتحقق أيضًا من نوع المطابقة أو إذا كان قابلاً للتخصيص. ربما يكون هذا طلبًا لـ _ @ angular / language-service_.

شكرا لك

feature ivy lib

التعليق الأكثر فائدة

هذه قضية كبيرة في رأيي.
يتم تسويق تكامل Tight Typescript بشكل كبير كأصل من Angular2 + ، ولكن في الواقع ، لم يتم التحقق من نوع 50٪ من الكود في الواقع. إذا كنت تفكر في تمرير المدخلات إلى المكونات كوظائف ، فهذا يعني بشكل أساسي أن جميع استدعاءات الوظائف هذه غير مطبوعة تمامًا. لا يتم تشغيل الكتابة إلا داخل أحد المكونات ، في حين أنها غير مجدية تمامًا لتوصيل المكون إلى المكون حيث سيكون في الواقع أكثر فائدة.

هذه مشكلة أكبر لأن الكتابة مفقودة من جزء التطبيق الذي يتغير كثيرًا.

في هذه المرحلة ، تتمتع React بتكامل مطبوع أفضل بكثير من Angular Contra ما يُذكر عادةً.

ال 7 كومينتر

هل هناك أي تحديث حول هذه المشكلة؟ هذا إلى حد كبير أحد الأشياء السيئة القليلة حول استخدام الزاوي: ربط القالب الآمن.

هذه قضية كبيرة في رأيي.
يتم تسويق تكامل Tight Typescript بشكل كبير كأصل من Angular2 + ، ولكن في الواقع ، لم يتم التحقق من نوع 50٪ من الكود في الواقع. إذا كنت تفكر في تمرير المدخلات إلى المكونات كوظائف ، فهذا يعني بشكل أساسي أن جميع استدعاءات الوظائف هذه غير مطبوعة تمامًا. لا يتم تشغيل الكتابة إلا داخل أحد المكونات ، في حين أنها غير مجدية تمامًا لتوصيل المكون إلى المكون حيث سيكون في الواقع أكثر فائدة.

هذه مشكلة أكبر لأن الكتابة مفقودة من جزء التطبيق الذي يتغير كثيرًا.

في هذه المرحلة ، تتمتع React بتكامل مطبوع أفضل بكثير من Angular Contra ما يُذكر عادةً.

لقد ذكرت أيضًا أنه لا يوجد تكملة تلقائية لمدخلات المكونات المخصصة. والتي قد تكون مرتبطة بهذه القضية.

ذات صلة ، ربما تكون محظورة: https://github.com/Microsoft/TypeScript/issues/9879

هذا مطلوب لأنه _very_ bug عرضة:

<button (click)="foo('bar')">Click me</button>

بطريقة محدودة:

// take note of the parameter type, where the template passes through a string.
public foo(bar: boolean): void {
    // ...
}

يجب أن يعطي هذا نوعًا من التحذير على الأقل.

سيؤدي تعيين fullTemplateTypeCheck على القيمة true في الملف tsConfig إلى قيام ng build بالإبلاغ عن الأخطاء ، وإذا كان خطأ ، فسوف ينهار.

متفقًا على أن هذه مشكلة كبيرة ومطلوبة في خدمة اللغة. ستكون هذه الميزة متاحة عندما تستخدم خدمة اللغة مترجم Ivy كخلفية (العمل جار على هذا).

تم إصلاح هذا من خلال خدمة اللغة الأصلية Ivy ، التي تم إصدارها في الإصدار 11.1.0 .
إنها ميزة الاشتراك في الوقت الحالي ، يرجى تجربتها وإعلامنا إذا كان لديك أي ملاحظات.
للحصول على أفضل تجربة محرر ، يرجى التأكد من تمكين strictTemplates في مشروعك في angularCompilerOptions .
في حالة حدوث خطأ مشابه ، يرجى تقديم مشكلة جديدة. سأغلق هذا الآن.

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