Language-tools: Error: el uso de la sintaxis de suscripción automática para una tienda que se definió en el script context = "module" produce un error.

Creado en 2 mar. 2021  ·  6Comentarios  ·  Fuente: sveltejs/language-tools

Eche un vistazo al componente Test en el siguiente REPL:
https://svelte.dev/repl/4859affa8c1c436783a9d9a6d537c903?version=3

Una tienda se crea en una etiqueta de script context="module" , y se usa con un signo de dólar $ antepuesto, en el marcado. Funciona como se esperaba. Sin embargo, el mismo código en VS Code muestra un error:

image

Tenga en cuenta que funciona y se compila correctamente, es decir, el compilador no da errores; por lo que el problema debe ser la extensión Svelte VS Code, básicamente no reconoce correctamente ninguna tienda que se haya definido en el script context="module" y, como resultado, hace que aparezca un ondulado rojo debajo de $count aquí.

Además, solo cuando el atributo lang="ts" está presente en la etiqueta <script> aparece el ondulado rojo.

Le agradecería que esto pueda solucionarse pronto.

Fixed bug

Comentario más útil

El uso de la sintaxis de suscripción automática para una tienda que se definió en el script context = "module" ya no debería generar un error a partir de la extensión de VS Code 104.6.0 / svelte-check 1.2.1

Todos 6 comentarios

  1. Enfrentó el mismo problema.
    Error: Cannot find name '$username'. Did you mean 'username'? (ts) cuando username creado en context="module" .

image

  1. Hay un error más al ejecutar 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';

Código:
image

Versión:

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

@fivemru ¿Es correcta la captura de pantalla? Porque, como parece, no está definiendo username en la etiqueta de script a context="module" sino en un archivo separado.

@fivemru ¿Es correcta la captura de pantalla? Porque, como parece, no está definiendo username en la etiqueta de script a context="module" sino en un archivo separado.

La captura de pantalla es para el segundo caso. Se agregó uno más para el 1er.
En el segundo caso, el error no aparece en vscode, pero está ahí cuando se ejecuta svelte-check

@fivemru Oh, está bien. Entiendo.

El segundo error no está relacionado. Se podría argumentar que es correcto porque solo escribe a la tienda y nunca lo lee. Al hacer $username = .. le dice a Svelte que se suscriba a esa tienda pero nunca la usa. En este caso username.set(..) es la mejor opción. Aún así, entiendo que esto es confuso, por lo que podemos considerar eliminar esa sugerencia.

El uso de la sintaxis de suscripción automática para una tienda que se definió en el script context = "module" ya no debería generar un error a partir de la extensión de VS Code 104.6.0 / svelte-check 1.2.1

¿Fue útil esta página
0 / 5 - 0 calificaciones

Temas relacionados

maximedupre picture maximedupre  ·  5Comentarios

Kingwl picture Kingwl  ·  6Comentarios

koddr picture koddr  ·  6Comentarios

vatro picture vatro  ·  3Comentarios

matthewmueller picture matthewmueller  ·  5Comentarios