Como usar melhor o TS no Vite

TS é uma ferramenta de verificação de tipo para JS , que verifica alguns problemas invisíveis que podem existir em nosso código; ao mesmo tempo, pode permitir que nosso compilador tenha algumas funções de solicitação de sintaxe .

Se usarmos create-vue (ferramenta de scaffolding oficial vue3) para criar um projeto, o projeto é baseado no Vite e o TypeScript está pronto para desenvolvimento TS diretamente.

Neste artigo, discutimos o suporte para TS em qualquer projeto de instalação (sem andaime).

Vite é naturalmente favorável ao TS

Criamos e inicializamos um projeto (yarn init -y), instalamos o vite (yarn add Vite -D).

Em seguida, crie um arquivo de entrada index.html e introduza nosso arquivo main.ts personalizado

<script src="./main.ts" type="module"></script> 

arquivo main.ts

let tip:string = "这是一个vite项目,使用了ts语法"
console.log('tip: ', tip); 

Usamos o comando vite para iniciar o projeto no terminal e podemos ver que o console exibe o que imprimimos.

Nesta demonstração, instalamos o vite apenas para projetos comuns, sem instalar nenhum plug-in relacionado ao ts.

Pode-se ver a partir disso que o vite já processou o suporte para ts internamente e podemos usá-lo diretamente.

Use plugins para aprimorar nossos recursos

Em um projeto vite puro, o vite não exibirá erros de sintaxe ts e bloqueará sua compilação por padrão.

OBS: Estamos falando do case sem uso de nenhum andaime!

Por exemplo, atribuímos o tipo de caractere tip a um número em main.ts

let tip:string = "这是一个vite项目,使用了ts语法"
tip = 2
console.log('tip: ', tip); 

Essa sintaxe TS é problemática, mas ainda assim será compilada com sucesso.

Para nos exigir estritamente e melhorar o nível do código, devemos deixar que a saída de erro no console impeça a compilação e nos force a resolver o problema.

Esta função pode ser realizada pelo vite-plugin-checker .

vite-plugin-checker é um plug-in que pode executar TypeScript, VLS, vue-tsc e ESLint em um thread de trabalho. Ele pode bloquear a compilação e exibir mensagens de erro no console e no navegador de acordo com a configuração.

Instalação de dependência

npm i vite-plugin-checker -D 

Crie um arquivo de configuração vite.config.js no diretório raiz e introduza vite-plugin-checker

// vite.config.js
import checker from "vite-plugin-checker";
import { defineConfig } from "vite";
export default defineConfig({plugins: [checker({typescript: true,}),],
}); 

Neste momento, executar o projeto diretamente ainda reportará um erro, porque o arquivo de configuração ts tsconfig.json também é necessário. Usamos a linha de comando para gerar

npx tsc --init 

Depois de criar o arquivo de configuração tsconfig.json, reinicie o serviço vite e você descobrirá que o erro de sintaxe do TS foi gerado

saída do console

saída do navegador

Agora, desde que escrevamos um TS problemático, o vite relatará um erro, vamos encontrar o problema e lidar com ele a tempo! Cheira tão bem!

Verificação TS antes de embalar

O Vite executa apenas a tradução de arquivos .ts e não realiza nenhuma verificação de tipo. Isso significa que mesmo que haja um erro gramatical de Ts em nosso projeto, o empacotamento pode prosseguir normalmente.

Como um excelente desenvolvedor, como podemos permitir que tal situação exista?

Podemos usar a seguinte sintaxe para realizar a inspeção de código no momento do empacotamento:

  • Execute tsc --noEmit no script de construção
  • Para arquivos .vue, você pode instalar o vue-tsc e executar vue-tsc --noEmit para verificar o tipo de seus arquivos *.vue

Nós o configuramos em package.json para verificação:

// package.json"scripts": {"dev": "vite",// 如果ts检查不通过,vite build就不会执行"build": "tsc --noEmit && vite build",}, 

Em seguida, execute npm run build para executar o comando de empacotamento

Com certeza, a compilação foi bloqueada neste momento.

O princípio de execução de tsc --noEmit

Esta é a sintaxe interna de ts e não tem nada a ver com vite. Ao executar tsc --noEmit , o TSC lerá o arquivo de configuração para obter os valores dos parâmetros.A função de --noEmit é apenas verificar e não compilar e gerar saída. Se nosso código estiver livre de erros, ele sairá diretamente, caso contrário, reportará um erro.

IntelliSense para TypeScript

Para conhecer as variáveis ​​de ambiente, consulte juejin.cn/post/717201…

Por padrão, o Vite fornece definições de tipo para import.meta.env em vite/client.d.ts . Mas alguns arquivos .env[mode] personalizados não têm intellisense TypeScript.

Para fazer isso, podemos criar um arquivo env.d.ts no diretório src e adicionar as definições da seguinte forma:

/// <reference types="vite/client" />

interface ImportMetaEnv {// 自定义内容...readonly VITE_APP_TITLE: stringreadonly VITE_APP_HAHA: stringreadonly VITE_APP_WOCAO: string// 自定义内容...
}

interface ImportMeta {readonly env: ImportMetaEnv
} 

Observação: O modelo deve estar instalado para gravar, este método é para todos os projetos e o mesmo é válido para projetos de scaffolding

Exemplo:

Teste em main.ts

Conforme mostrado na figura, podemos ver que nosso prompt inteligente entrou em vigor.

Aqui encontrei um relatório de erro no vscode, que é apenas um relatório de erro de ts e não tem nada a ver com a configuração de nossas variáveis.

O problema do erro também é muito simples. ts agora pensa que nosso projeto é baseado em commonjs, então não há nenhum atributo import.meta.

Podemos alterar o valor do módulo para "es2022".

Finalmente

Recentemente, encontrei um documento VUE, que resume os vários pontos de conhecimento do VUE e os organiza em "36 habilidades que o desenvolvimento do Vue deve conhecer". O conteúdo é relativamente detalhado e a explicação de cada ponto de conhecimento também está disponível.



Amigos necessitados, você pode clicar no cartão abaixo para receber e compartilhar gratuitamente

Acho que você gosta

Origin blog.csdn.net/web22050702/article/details/128703487
Recomendado
Clasificación