-
Notifications
You must be signed in to change notification settings - Fork 2
Problemas de TypeScript
Este documento aborda como lidar e relatar problemas com o suporte integrado a JavaScript e TypeScript do NP Sharp.
Veja como relatar um relatório de problemas do TypeScript de alta qualidade. Siga também nosso guia geral de relatórios de problemas.
-
Descubra se o problema está no próprio TypeScript ou no suporte TypeScript do NP Sharp
Se o problema for sobre o próprio TypeScript, ele deverá ser relatado diretamente no TypeScript. Exemplos de problemas do TypeScript incluem:
- Problemas com verificação de tipo
- Problemas com o IntelliSense que não funciona conforme esperado em JavaScript ou TypeScript
- Problemas com a compilação do TypeScript
- Dúvidas sobre como usar TypeScript
Se o problema for sobre o suporte a JavaScript e TypeScript do NP Sharp, continue em
-
Verifique as causas mais comuns de problemas e falhas
A maioria dos problemas e travamentos do TypeScript são causados por alguns problemas comuns
-
Para problemas de ferramentas, forneça etapas claras para reproduzir o problema
Descreva claramente o problema e forneça etapas simples para reproduzi-lo. Certifique-se de incluir todo o código relevante necessário para investigar o problema. Se o seu código for complexo ou extenso, tente reduzir o exemplo à quantidade mínima de código possível.
-
Para falhas, forneça o log de falhas do TypeScript
Consulte Coletando logs de travamento para obter etapas sobre como coletar os logs do servidor travado. Certifique-se de anexar esses registros ao seu relatório de problemas
Para sugestões e orientações adicionais, consulte nosso guia geral de relatórios de problemas
- Extensões e plugins
- [Versão TypeScript desatualizada](#versão TypeScript desatualizada)
- [Uso de memória](#uso de memória)
As extensões podem modificar o comportamento do serviço TypeScript integrado do NP Sharp. Isso é comumente usado para adicionar recursos de ferramentas especializadas ou oferecer suporte a diferentes sintaxes, como Vue.
No entanto, essas extensões também são a principal causa de instabilidade no suporte integrado a JavaScript e TypeScript do NP Sharp. Se você estiver enfrentando travamentos ou outros problemas, sempre tente primeiro desativar todas as extensões ou use iniciar extensão ao meio por meio de "F1 > Iniciar extensão ao meio". Se você descobrir que o problema é causado por uma extensão instalada, registre um problema na extensão.
Além disso, se você estiver usando uma versão de espaço de trabalho do TypeScript, tente também desabilitar quaisquer plug-ins locais escolhidos por seu tsconfig ou jsconfig
A versão mais recente do NP Sharp normalmente inclui a versão TypeScript estável mais recente. Se você disse ao NP Sharp para usar sua versão de espaço de trabalho do TypeScript, você pode estar usando uma versão mais antiga que possui bugs que já foram corrigidos.
Antes de relatar um problema, certifique-se de que sua versão do Typescript esteja atualizada:
-
Certifique-se de que sua versão do NP Sharp esteja totalmente atualizada.
-
Certifique-se de estar usando a versão do TypeScript do NP Sharp (ou uma nova versão). Com um arquivo JavaScript ou TypeScript aberto, execute o comando
TypeScript: Select TypeScript version. Confirme seUsar versão do NP Sharpestá selecionado
Para projetos grandes ou especialmente complexos, é possível que o servidor TypeScript fique sem memória, o que pode causar falha no serviço. Você pode verificar o uso de memória usando o process explorer
Se você suspeitar que o uso de memória está causando a falha do serviço TypeScript, primeiro tente [dividir seu código. Consulte [trabalhar com projetos grandes](#trabalhar com projetos grandes) para dicas
Se isso ainda não funcionar, você pode tentar aumentar a memória disponível para o servidor TypeScript:
- Nas configurações do NP Sharp, defina
typescript.tsserver.nodePathpara que o servidor TypeScript seja executado usando sua versão do nó local - Aumente
typescript.tsserver.maxTsServerMemorypara um limite superior razoável para uso de memória. Certifique-se de que seu sistema tenha memória suficiente para isso.
Os logs do servidor TypeScript fornecem informações detalhadas que podemos usar para i Investigue falhas e outros problemas. Para coletar os logs após a falha do servidor TypeScript:
-
Defina
"typescript.tsserver.log": "verbose" -
Reinicie o NP Sharp e reproduza o problema
-
Abra a seção
TypeScriptdo painel de saída -
No topo, encontre a primeira linha que imprime o caminho para o arquivo de log de erros semânticos. Deve ser algo como:
[Info - 19:54:59.247] <semântico> Arquivo de log: /Users/matb/Library/Application Support/Code - Insiders/logs/20200213T104930/exthost55/vscode.typescript-language-features/tsserver-log-ZT2zau/tsserver.logEsse arquivo contém os logs do TypeScript.
Ao relatar o problema, inclua os registros completos ou uma versão editada deles.
⚠️ Aviso: O log do TypeScript pode incluir informações do seu espaço de trabalho, incluindo caminhos de arquivo e código-fonte. Se você tiver alguma dúvida sobre postar isso publicamente no Github, é só me avisar e podemos providenciar outra coisa. Da nossa parte, só usamos esses logs para investigar problemas como este
Se você estiver vendo um problema de TypeScript que não é uma falha, geralmente é útil compartilhar os logs da instância do servidor TypeScript em execução no momento.
- Defina
"typescript.tsserver.log": "verbose" - Reinicie o NP Sharp e reproduza o problema
- Com um arquivo JavaScript ou TypeScript aberto e focado, execute o comando
TypeScript: Open TS Server Log.
Isso abrirá o arquivo de logs atual no NP Sharp.
Se você estiver trabalhando em uma base de código com centenas ou milhares de arquivos TypeScript, aqui estão algumas etapas que você pode seguir para melhorar a experiência de edição no NP Sharp e também os tempos de compilação na linha de comando.
Use include ou files no tsconfig.json do seu projeto para garantir que o projeto inclua apenas os arquivos que devem fazer parte do projeto.
Mais informações sobre como configurar o tsconfig.json do seu projeto.
Em vez de estruturar seu código-fonte como um único projeto grande, você pode melhorar o desempenho dividindo-o em projetos menores usando referências de projeto. Isso permite que o TypeScript carregue apenas um subconjunto de sua base de código por vez, em vez de carregar tudo.
Consulte a documentação do TypeScript para obter detalhes sobre como usar referências de projetos e práticas recomendadas para trabalhar com eles.
Gerenciamento de Projetos
- Roteiro
- Planos de Iteração
- Processo de Desenvolvimento
- Rastreamento de problemas
- Campeão de Construção
- Processo de lançamento
- Executando o Fim do Jogo
- Projetos Relacionados
Contribuindo
- Como contribuir
- Enviando Bugs e Sugestões
- Canais de feedback
- Organização do código-fonte
- Diretrizes de codificação
- Teste
- Lidando com a instabilidade do teste
- Contrato de Licença do Colaborador
- Diretrizes da API de extensão
- Diretrizes de acessibilidade
Documentação