Dê uma olhada no componente Test
no seguinte REPL:
https://svelte.dev/repl/4859affa8c1c436783a9d9a6d537c903?version=3
Uma loja é criada em uma tag de script context="module"
e está sendo usada com um cifrão $
anexado a ela, na marcação. Funciona como esperado. No entanto, o mesmo código no VS Code mostra um erro:
Observe que ele funciona e compila corretamente, ou seja, o compilador não dá erros; portanto, deve ser a extensão Svelte VS Code que é o problema, basicamente, ele não reconhece adequadamente nenhuma loja que tenha sido definida no script context="module"
e, como resultado, faz com que um rabisco vermelho apareça abaixo de $count
aqui.
Além disso, é apenas quando o atributo lang="ts"
está presente na tag <script>
que o rabisco vermelho aparece.
Eu agradeceria se isso pudesse ser corrigido em breve.
Error: Cannot find name '$username'. Did you mean 'username'? (ts)
quando username
criado em 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';
Código:
Versão:
"svelte": "^3.35.0",
"svelte-check": "^1.2.0",
"typescript": "^4.2.2"
@fivemru Mas a imagem está correta? Porque parece que você não está definindo username
na tag de script context="module"
mas em um arquivo separado.
@fivemru Mas a imagem está correta? Porque parece que você não está definindo
username
na tag de scriptcontext="module"
mas em um arquivo separado.
A captura de tela é para o segundo caso. Adicionado mais um para o primeiro.
No segundo caso, o erro não aparece no vscode, mas está lá ao executar o svelte-check
@fivemru Oh ok. Entendi.
O segundo erro não está relacionado. Alguém poderia argumentar que está correto porque você só escreve para a loja e nunca lê. Ao fazer $username = ..
você diz a Svelte para assinar aquela loja, mas você nunca a usa. Neste caso, username.set(..)
é a melhor opção. Ainda assim, entendo que isso é confuso, então podemos tentar remover essa dica.
Usar a sintaxe de assinatura automática para uma loja que foi definida no script context = "module" não deve mais gerar um erro na extensão do código VS 104.6.0 / svelte-check
1.2.1
Comentários muito úteis
Usar a sintaxe de assinatura automática para uma loja que foi definida no script context = "module" não deve mais gerar um erro na extensão do código VS 104.6.0 /
svelte-check
1.2.1