Jetez un œil au composant Test
dans le REPL suivant:
https://svelte.dev/repl/4859affa8c1c436783a9d9a6d537c903?version=3
Un magasin est créé dans une balise de script context="module"
, et il est utilisé avec un signe dollar $
ajouté au début, dans le balisage. Cela fonctionne comme prévu. Cependant, le même code dans VS Code affiche une erreur:
Notez que cela fonctionne et compile correctement, en d'autres termes, le compilateur ne donne aucune erreur; donc ce doit être l'extension Svelte VS Code qui est le problème, fondamentalement, il ne reconnaît correctement aucun magasin qui a été défini dans le script context="module"
, et par conséquent, un squiggly rouge apparaît sous $count
ici.
De plus, ce n'est que lorsque l'attribut lang="ts"
est présent sur la balise <script>
que le squiggly rouge apparaît.
J'apprécierais si cela peut être corrigé bientôt.
Error: Cannot find name '$username'. Did you mean 'username'? (ts)
quand username
créé dans 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:
Version:
"svelte": "^3.35.0",
"svelte-check": "^1.2.0",
"typescript": "^4.2.2"
@fivemru Est-ce que la capture d'écran est correcte? Parce qu'il semble que vous ne définissez pas username
dans la balise de script a context="module"
mais dans un fichier séparé.
@fivemru Est-ce que la capture d'écran est correcte? Parce qu'il semble que vous ne définissez pas
username
dans la balise de script acontext="module"
mais dans un fichier séparé.
La capture d'écran concerne le 2ème cas. Ajouté un de plus pour le 1er.
Dans le 2ème cas, l'erreur n'apparaît pas dans vscode, mais elle est présente lors de l'exécution de svelte-check
@fivemru Oh d'accord. J'ai compris.
La deuxième erreur n'est pas liée. On pourrait dire que c'est correct car vous n'écrivez que dans le magasin et ne le lisez jamais. En faisant $username = ..
vous dites à Svelte de s'abonner à ce magasin mais vous ne l'utilisez jamais. Dans ce cas, username.set(..)
est la meilleure option. Pourtant, je comprends que cela est déroutant, nous pouvons donc envisager de supprimer cet indice.
L'utilisation de la syntaxe d'abonnement automatique pour un magasin défini dans le script context = "module" ne devrait plus générer d'erreur à partir de l'extension VS Code 104.6.0 / svelte-check
1.2.1
Commentaire le plus utile
L'utilisation de la syntaxe d'abonnement automatique pour un magasin défini dans le script context = "module" ne devrait plus générer d'erreur à partir de l'extension VS Code 104.6.0 /
svelte-check
1.2.1