Schauen Sie sich die Test
-Komponente in der folgenden REPL an:
https://svelte.dev/repl/4859affa8c1c436783a9d9a6d537c903?version=3
Ein Geschäft wird in einem context="module"
-Skript-Tag erstellt und im Markup mit einem Dollarzeichen $
vorangestellt. Es funktioniert wie erwartet. Der gleiche Code in VS Code zeigt jedoch einen Fehler an:
Beachten Sie, dass es ordnungsgemäß funktioniert und kompiliert. Mit anderen Worten, der Compiler gibt keine Fehler aus. Es muss also die Svelte VS Code-Erweiterung sein, die das Problem darstellt. Im Grunde erkennt sie keinen Speicher, der im context="module"
-Skript definiert wurde, richtig und führt dazu, dass ein roter Schnörkel unter $count
hier.
Außerdem wird das rote Schnörkel nur angezeigt, wenn das Attribut lang="ts"
auf dem Tag <script>
vorhanden ist.
Ich würde es begrüßen, wenn dies bald behoben werden kann.
Error: Cannot find name '$username'. Did you mean 'username'? (ts)
wenn username
in context="module"
.> 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';
Code:
Ausführung:
"svelte": "^3.35.0",
"svelte-check": "^1.2.0",
"typescript": "^4.2.2"
@fivemru Ist der Screenshot aber korrekt? Denn wie es scheint, definieren Sie username
im Skript-Tag context="module"
sondern in einer separaten Datei.
@fivemru Ist der Screenshot aber korrekt? Denn wie es scheint, definieren Sie
username
im Skript-Tagcontext="module"
sondern in einer separaten Datei.
Der Screenshot ist für den 2. Fall. Fügte noch einen für den 1 ..
Im zweiten Fall erscheint der Fehler nicht in vscode, sondern tritt beim Ausführen von svelte-check auf
@fivemru Oh okay. Ich habs.
Der zweite Fehler hat nichts damit zu tun. Man könnte argumentieren, dass es richtig ist, weil man nur in den Laden schreibt und ihn nie liest. Wenn Sie $username = ..
ausführen, weisen Sie Svelte an, diesen Shop zu abonnieren, aber Sie verwenden ihn nie. In diesem Fall ist username.set(..)
die bessere Option. Trotzdem verstehe ich, dass dies verwirrend ist, so dass wir versuchen können, diesen Hinweis zu entfernen.
Die Verwendung der Auto-Subscription-Syntax für ein Geschäft, das im Skript context = "module" definiert wurde, sollte ab der VS-Code-Erweiterung 104.6.0 / svelte-check
1.2.1 keinen Fehler mehr ergeben
Hilfreichster Kommentar
Die Verwendung der Auto-Subscription-Syntax für ein Geschäft, das im Skript context = "module" definiert wurde, sollte ab der VS-Code-Erweiterung 104.6.0 /
svelte-check
1.2.1 keinen Fehler mehr ergeben