0Pricing
TypeScript Academy · Aula

Estratégia de conversão arquivo por arquivo

Renomeie .js para .ts gradualmente sem quebrar nada

Estratégia de conversão arquivo por arquivo é uma aula grátis de TypeScript Academy no CoddyKit. Esta é a aula 3 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de TypeScript Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de TypeScript Academy inclui 4 aulas no total.

A abordagem incremental

A conversão arquivo por arquivo renomeia um .js para .ts de cada vez, corrigindo os erros de tipos à medida que você avança. Isso mantém o projeto compilando em todas as etapas.

# Step 1: rename
mv src/utils.js src/utils.ts
# Step 2: fix errors
npx tsc --noEmit
# Step 3: commit and repeat

Escolhendo por onde começar

Comece pelos módulos folha — arquivos sem importações de outros arquivos do projeto. Assim, não há dependências de TypeScript posteriores que precisem ser atendidas primeiro.

# Find files with fewest imports from other project files:
grep -r "from './" src --include="*.js" | sort | uniq -c | sort -n
# Convert lowest-count files first

Lidando com erros de any implícito

Quando um arquivo JS é renomeado para .ts, os parâmetros sem tipos se tornam erros de any implícito se noImplicitAny: true estiver habilitado. Adicione tipos explícitos ou use any temporariamente.

// Before: JS
function process(data) { return data.value; }

// After: TS (add annotation)
function process(data: { value: string }) { return data.value; }
// Or temporarily:
function process(data: any) { return data.value; }

Suprimindo erros temporariamente

Use // @ts-ignore nas linhas difíceis de corrigir e acompanhe-as como TODOs para que não sejam esquecidas.

// TODO: type this properly in follow-up PR
// @ts-ignore
const result = complexLegacyFunction(x);

Atualizando instruções de importação

Quando um arquivo se torna .ts, os arquivos que o utilizam podem precisar de importações atualizadas. TypeScript resolve arquivos .ts automaticamente sem extensões de arquivo nos caminhos de importação.

// No extension needed — TypeScript finds .ts
import { process } from "./utils";

Convertendo chamadas de terceiros

Substitua chamadas require de CommonJS pela sintaxe de módulos ES import durante a conversão, para corresponder à resolução de módulos de TypeScript.

// Before: CommonJS
const fs = require("fs");
// After: ES module
import fs from "fs";

Progressão do modo estrito

Habilite as opções estritas gradualmente por arquivo, usando comentários // @ts-strict-ignore por arquivo ou migrando para um tsconfig separado com o modo estrito habilitado.

// tsconfig.strict.json — points to converted files only
{
  "extends": "./tsconfig.json",
  "compilerOptions": { "strict": true },
  "include": ["src/converted/**/*"]
}

Acompanhando os arquivos restantes

Mantenha uma lista de verificação ou use um script para contar os arquivos .js restantes e acompanhar o progresso da migração ao longo do tempo.

find src -name "*.js" | wc -l   # remaining JS files
find src -name "*.ts" | wc -l   # converted TS files

Evitando PRs grandes

Converta um arquivo por PR para manter as revisões sob controle. Migrações grandes para TypeScript são mais fáceis de revisar e reverter quando limitadas a arquivos individuais.

# Good: one file per PR
# Bad: 50 files renamed in one PR

Executando testes após cada conversão

Execute o conjunto de testes após a conversão de cada arquivo para detectar regressões em tempo de execução que o verificador de tipos de TypeScript talvez não identifique.

npm test
# Ensure all tests pass after each .js → .ts rename

Recapitulação: estratégia arquivo por arquivo

Converta primeiro os arquivos folha, corrija ou suprima os erros, mantenha o projeto compilando em todas as etapas, acompanhe os arquivos JS restantes e envie um arquivo por PR para manter as revisões sob controle.

Verificação rápida

Quais arquivos você deve converter primeiro para TypeScript em uma migração arquivo por arquivo?

O que você aprendeu

Migração arquivo por arquivo: comece pelos módulos folha, renomeie para .ts, corrija ou suprima os erros, mantenha o projeto compilando e acompanhe o progresso. Conversões pequenas por PR tornam a migração segura e fácil de revisar.

Perguntas Frequentes

A aula “Estratégia de conversão arquivo por arquivo” é grátis?

Sim — o texto completo de “Estratégia de conversão arquivo por arquivo” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de TypeScript Academy, atualize para CoddyKit PRO. O curso de TypeScript Academy inclui 4 aulas no total.

O que vou aprender em “Estratégia de conversão arquivo por arquivo”?

Renomeie .js para .ts gradualmente sem quebrar nada Você pratica TypeScript Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar TypeScript Academy?

Nenhuma experiência prévia é necessária. TypeScript Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 3 de 4.

Quanto tempo leva a aula “Estratégia de conversão arquivo por arquivo”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de TypeScript Academy?

Sim. Cada aula de TypeScript Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. Iniciando a migração: allowJs e checkJs
  2. Anotações de tipos JSDoc como ponte
  3. Estratégia de conversão arquivo por arquivo
  4. Lidando com bibliotecas de terceiros sem tipos
← Voltar para TypeScript Academy