Language-tools: Bug: Menggunakan sintaks langganan otomatis untuk penyimpanan yang ditentukan dalam skrip konteks = "modul" menghasilkan kesalahan.

Dibuat pada 2 Mar 2021  ·  6Komentar  ·  Sumber: sveltejs/language-tools

Lihatlah komponen Test di REPL berikut:
https://svelte.dev/repl/4859affa8c1c436783a9d9a6d537c903?version=3

Sebuah toko dibuat dalam tag skrip context="module" , dan sedang digunakan dengan tanda dolar $ depannya, di markup. Ini bekerja seperti yang diharapkan. Namun, kode yang sama di VS Code menunjukkan kesalahan:

image

Perhatikan bahwa ini berfungsi dan dikompilasi dengan benar, dengan kata lain, kompilator tidak memberikan kesalahan; jadi pasti ekstensi Svelte VS Code itulah masalahnya, pada dasarnya ia tidak mengenali dengan benar toko apa pun yang telah ditentukan dalam skrip context="module" , dan akibatnya menyebabkan garis merah berlekuk-lekuk muncul di bawah $count sini.

Selain itu, hanya jika atribut lang="ts" ada pada tag <script> barulah tanda merah berlekuk-lekuk muncul.

Saya akan sangat menghargai jika ini dapat segera diperbaiki.

Fixed bug

Komentar yang paling membantu

Menggunakan sintaks langganan otomatis untuk penyimpanan yang ditentukan dalam skrip konteks = "modul" seharusnya tidak lagi menghasilkan kesalahan pada ekstensi VS Code 104.6.0 / svelte-check 1.2.1

Semua 6 komentar

  1. Menghadapi masalah yang sama.
    Error: Cannot find name '$username'. Did you mean 'username'? (ts) saat username dibuat di context="module" .

image

  1. Ada satu kesalahan lagi saat menjalankan svelte-check:
> 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';

Kode:
image

Versi: kapan:

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

@fivemru Apakah tangkapan layar sudah benar? Karena sepertinya Anda tidak mendefinisikan username dalam tag skrip context="module" tetapi dalam file terpisah.

@fivemru Apakah tangkapan layar sudah benar? Karena sepertinya Anda tidak mendefinisikan username dalam tag skrip context="module" tetapi dalam file terpisah.

Tangkapan layar untuk kasus kedua. Menambahkan satu lagi untuk yang pertama.
Dalam kasus ke-2, kesalahan tidak muncul di vscode, tetapi ada saat menjalankan svelte-check

@ iyaaaaahhh . Mengerti.

Kesalahan kedua tidak terkait. Orang dapat berargumen bahwa itu benar karena Anda hanya menulis ke toko dan tidak pernah membacanya. Dengan melakukan $username = .. Anda memberi tahu Svelte untuk berlangganan ke toko itu tetapi Anda tidak pernah menggunakannya. Dalam hal ini username.set(..) adalah opsi yang lebih baik. Tetap saja saya mengerti bahwa ini membingungkan sehingga kami dapat mempertimbangkan untuk menghapus petunjuk itu.

Menggunakan sintaks langganan otomatis untuk penyimpanan yang ditentukan dalam skrip konteks = "modul" seharusnya tidak lagi menghasilkan kesalahan pada ekstensi VS Code 104.6.0 / svelte-check 1.2.1

Apakah halaman ini membantu?
0 / 5 - 0 peringkat