Language-tools: خطأ: يؤدي استخدام بناء جملة الاشتراك التلقائي لمتجر تم تعريفه في السياق النصي "وحدة نمطية" إلى حدوث خطأ.

تم إنشاؤها على ٢ مارس ٢٠٢١  ·  6تعليقات  ·  مصدر: sveltejs/language-tools

ألق نظرة على المكون Test في REPL التالي:
https://svelte.dev/repl/4859affa8c1c436783a9d9a6d537c903؟version=3

يتم إنشاء المتجر في علامة البرنامج النصي context="module" ، ويتم استخدامه بعلامة الدولار $ مضافة إليه مسبقًا ، في الترميز. يعمل كما هو متوقع. ومع ذلك ، يظهر نفس الرمز في رمز VS خطأ:

image

لاحظ أنه يعمل ويترجم بشكل صحيح ، بمعنى آخر ، لا يعطي المترجم أخطاء ؛ لذلك يجب أن يكون امتداد Svelte VS Code هو المشكلة ، فهو في الأساس لا يتعرف بشكل صحيح على أي متجر تم تحديده في البرنامج النصي context="module" ، ونتيجة لذلك تسبب ظهور متعرج أحمر تحت $count هنا.

أيضًا ، فقط عندما تكون السمة lang="ts" موجودة على علامة <script> يظهر اللون الأحمر المتعرج.

سأكون ممتنًا إذا أمكن إصلاح ذلك قريبًا.

Fixed bug

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

استخدام بناء جملة الاشتراك التلقائي لمتجر تم تعريفه في السياق = يجب ألا يؤدي البرنامج النصي "وحدة نمطية" إلى ظهور خطأ اعتبارًا من ملحق VS Code 104.6.0 / svelte-check 1.2.1

ال 6 كومينتر

  1. واجهت نفس المشكلة.
    Error: Cannot find name '$username'. Did you mean 'username'? (ts) عندما تم إنشاء username في context="module" .

image

  1. يوجد خطأ آخر عند تشغيل فحص svelte:
> svelte-check --ignore src/node_modules/<strong i="15">@sapper</strong>

/src/routes/my/test.svelte:2:2
Hint: '$username' is declared but its value is never read. (ts)
<script lang="ts">
  import { username } from './_store';

شفرة:
image

إصدار:

    "svelte": "^3.35.0",
    "svelte-check": "^1.2.0",
    "typescript": "^4.2.2"

fivemru هل لقطة الشاشة صحيحة بالرغم من ذلك؟ لأنه يبدو أنك لا تحدد username في علامة البرنامج النصي context="module" ولكن في ملف منفصل.

fivemru هل لقطة الشاشة صحيحة بالرغم من ذلك؟ لأنه يبدو أنك لا تحدد username في علامة البرنامج النصي context="module" ولكن في ملف منفصل.

لقطة الشاشة للحالة الثانية. تمت إضافة واحدة أخرى للأول.
في الحالة الثانية ، لا يظهر الخطأ في vscode ، ولكنه موجود عند تشغيل فحص svelte

تضمين التغريدة فهمتك.

الخطأ الثاني غير ذي صلة. يمكن للمرء أن يجادل بأنه صحيح لأنك تكتب فقط إلى المتجر ولا تقرأه أبدًا. من خلال القيام بـ $username = .. فإنك تخبر Svelte بالاشتراك في هذا المتجر ولكنك لا تستخدمه أبدًا. في هذه الحالة ، username.set(..) هو الخيار الأفضل. ما زلت أفهم أن هذا أمر محير لذا قد ننظر في إزالة هذا التلميح.

استخدام بناء جملة الاشتراك التلقائي لمتجر تم تعريفه في السياق = يجب ألا يؤدي البرنامج النصي "وحدة نمطية" إلى ظهور خطأ اعتبارًا من ملحق VS Code 104.6.0 / svelte-check 1.2.1

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