Descreva o bug
export let
declarações de uma propriedade não utilizada causam um aviso. O aviso é exibido na linha acima da propriedade real para mim.
Reproduzir
Defina a linguagem do script para texto digitado ( lang="ts"
ou type="text/typescript"
).
Declare alguma propriedade de exportação, não a use em nenhum lugar.
Comportamento esperado
O aviso está na propriedade que não está sendo usada.
Capturas de tela
Se a propriedade estiver na primeira linha do script:
Sistema (preencha as seguintes informações):
Tente atualizar seu @ tsconfig / svelte para o último
Eu não estou usando isso.
Adicionado temporariamente, não fez nada.
Oh, pensei que você estava usando o modelo oficial. O pacote é uma configuração básica para svelte. Você pode atualizar extends
de seu tsconfig.json
para corresponder a isso.
https://github.com/sveltejs/template/blob/8194bf8f6452f8117195bf304ac99b15d329fbb3/scripts/setupTypeScript.js#L87
Duplicado de # 333
@ jasonlyu123 Como eu disse, adicionei a configuração básica temporariamente, mas nada mudou. Ainda recebo os erros na linha errada.
Então você pode tentar executar tsc
para compilar um arquivo ts em sua área de trabalho e ver se o arquivo de saída tem mapa de origem?
O problema é com o mapa de origem. Usamos o compilador svelte para obter diagnósticos svelte. se você tiver um svelte.config.js e especificar seu pré-processador nele, nós o usaríamos para pré-processar, exceto que usaremos o pré-processamento oficial svelte. E se o pré-processador não retornar um mapa de origem, o aviso estaria na posição errada.
Além disso, não monitoramos alterações no tsconfig.json, portanto, certifique-se de reiniciar o servidor de idioma após quaisquer alterações.
Nem sempre gera mapas de origem. Se eu chamar tsc
em um único arquivo, ele aparentemente não carrega o tsconfig; se eu usar tsc -p .
ou tsc --build tsconfig.json
, o mapa de origem será gerado conforme o esperado.
Posso dar uma olhada no seu svelte.config.js
se você o tiver, também qual pré-processador você usa?
Eu uso o processador padrão, que deve ser svelte-preprocess
no modo automático. Fiz um repositório de exemplo mínimo que contém os erros no componente de entrada.
Tentei criar um svelte.config.js
, definindo explicitamente o pré-processador no modo automático, não importou. Usar explicitamente apenas typescript
com um caminho para tsconfig.json
também não fez nada.
Ummm ... isso é inesperado, só funcionaria quando eu também definisse sourcemap
como verdadeiro em tsconfig.json
Então o extends
não funciona bem. Bem, eu não me importo em definir isso explicitamente por enquanto.
Obrigado
Sim, eu dei uma olhada rápida no arquivo de origem do pré-processo svelte. Parece que não analisa extends
.
Obrigado pelo problema!
Abri este problema em svelte-preprocess
, porque de acordo com os documentos , no modo de pré-processamento automático, os mapas de origem devem ser gerados. Atualização: os documentos estavam errados, então você precisa definir isso para true
você mesmo.
@brunnerh se você remover "sourceMaps": true
e a referência de configuração de base de seu tsconfig.json
e, em vez disso, fizer sveltePreprocess({sourceMap: true})
em seu svelte.config.js
, ele mostra os avisos no correto linha então?
@brunnerh se você remover
"sourceMaps": true
e a referência de configuração de base de seutsconfig.json
e, em vez disso, fizersveltePreprocess({sourceMap: true})
em seusvelte.config.js
, ele mostra os avisos no correto linha então?
Não, ainda desligado.
Portanto, só funciona se você adicionar "sourceMaps": true
ao tsconfig.json
?
sim
Fechando, pois estes são problemas relacionados a svelte-preprocess
. O problema "mapa de origem não é aplicado quando eu conto o pré-processamento por meio de sua opção de mapa de origem" foi corrigido na versão mais recente. O " extends
-recurso de tsconfig.json
não suportado" é rastreado em https://github.com/sveltejs/svelte-preprocess/issues/300 .