Language-tools: Bug: l'utilisation de la syntaxe d'abonnement automatique pour un magasin qui a été défini dans le script context = "module" génère une erreur.

Créé le 2 mars 2021  ·  6Commentaires  ·  Source: sveltejs/language-tools

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:

image

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.

Fixed bug

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

Tous les 6 commentaires

  1. Face au même problème.
    Error: Cannot find name '$username'. Did you mean 'username'? (ts) quand username créé dans context="module" .

image

  1. Il y a une autre erreur lors de l'exécution de 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';

Code:
image

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 a context="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

Cette page vous a été utile?
0 / 5 - 0 notes

Questions connexes

matthewmueller picture matthewmueller  ·  3Commentaires

JAD3N picture JAD3N  ·  5Commentaires

Kingwl picture Kingwl  ·  6Commentaires

PatrickG picture PatrickG  ·  3Commentaires

johanbissemattsson picture johanbissemattsson  ·  4Commentaires