Revisão de código TypeScriptTreinamento em programação

Revisão de código TypeScript: tipos, estrutura e erros

Entrega a partir de 1 diaAjustes incluídosControle de qualidade
Pacotes
Pagamento protegidoDetalhes
  • Os ajustes previstos no pacote são gratuitos.
  • Se você não responder em 3 dias após a entrega, o trabalho é aprovado automaticamente.
Fazer pedido · US$ 35

O dinheiro fica reservado no pagamento e só é liberado quando você aprova o trabalho.

Revisão de código TypeScript: tipos, estrutura e erros

Exemplo de resultado

Exemplo do pacote Padrão

Revisão de código: script em Python para importar pedidos de uma loja virtual

O que o código faz

  1. Lê o orders.csv exportado da loja.
  2. Para cada item do pedido, procura o produto pelo SKU no stock.xlsx e subtrai a quantidade.
  3. Grava o estoque atualizado e registra os totais em import_log.txt.

A estrutura é clara e as funções têm bons nomes. A maioria dos problemas vem de dados de entrada que não chegam no formato que o script espera.

Bugs e pontos fracos

#LinhaGravidadeProblema
148AltaO mesmo CSV pode ser importado duas vezes; não há checagem dos IDs de pedido já processados. É a causa mais provável do estoque negativo.
272Altaint(row["qty"]) quebra com valores vazios ou "2.0" de pedidos reembolsados.
395MédiaA busca por SKU diferencia maiúsculas: "gt-101" e "GT-101" viram produtos diferentes.
4130MédiaO arquivo é aberto sem encoding="utf-8", então nomes com acento quebram no Windows.
5201BaixaUm except: genérico esconde os erros reais e deixa o log inútil.

Trechos corrigidos

Problema 1: pular pedidos já importados

processed = load_processed_ids("processed_orders.txt")
for row in reader:
    if row["order_id"] in processed:
        continue
    # ... lógica existente ...
    processed.add(row["order_id"])
save_processed_ids("processed_orders.txt", processed)

Por quê: cada pedido é aplicado uma única vez, mesmo que você rode o script de novo com o mesmo arquivo.

Problema 2: ler a quantidade com segurança

raw = (row.get("qty") or "").strip()
try:
    qty = int(float(raw))
except ValueError:
    log.warning("Pedido %s: quantidade inválida %r, ignorado", row["order_id"], raw)
    continue

Por quê: itens reembolsados ou parciais são pulados com um aviso claro, em vez de interromper toda a importação.

Problema 3: padronizar os SKUs

sku = row["sku"].strip().upper()

Aplique o mesmo .strip().upper() ao montar o dicionário de estoque.

Estilo e legibilidade

  • process() tem 90 linhas; divida em read_orders, apply_to_stock e write_report.
  • Troque os números de coluna "mágicos" (row[7]) pelos nomes dos cabeçalhos.

Teste cada correção em uma cópia dos seus arquivos: lemos o código, mas não o executamos.

Cliente: dona de uma loja de chás que escreveu um script em Python de 310 linhas para importar os pedidos de um CSV exportado para a planilha de estoque Problema relatado: "Às vezes o estoque fica negativo, e o script trava com alguns arquivos."

O cliente e todos os dados são fictícios.

Sobre este serviço

O TypeScript só protege você quando os tipos dizem o que o código realmente faz, e muitos projetos aos poucos se enchem de any, type assertions sem verificação e campos opcionais que nunca são opcionais de verdade. Lemos o seu código e as definições de tipo, explicamos os erros do compilador em que você travou e mostramos onde narrowing, union types ou um pequeno generic substituiriam um cast. Os fragmentos corrigidos levam o strict mode em conta, para que as correções continuem valendo quando o compilador ficar mais rigoroso.

O que está incluído

  • O que você recebeUma revisão escrita na página do pedido: erros do compilador explicados, tipos fracos listados por risco e fragmentos corrigidos com definições de tipo melhores. O Premium inclui um plano para ativar opções mais rigorosas do compilador passo a passo.
  • Erros do compilador decifradosMensagens longas em palavras simples
  • Menos any e castsTipos mais seguros no lugar deles
  • Narrowing e unionsDeixe o compilador verificar os ramos
  • Interfaces e genericsDefinições de tipo reutilizáveis e legíveis
  • Fragmentos corrigidosCom uma nota sobre cada mudança

Como funciona

  1. 1
    BriefingVocê cola o código, os tipos e os erros
  2. 2
    LeituraComparamos os tipos com o comportamento real
  3. 3
    RevisãoVocê recebe explicações e tipos melhores

O que precisamos de você

O código TypeScript e os tipos colados como texto ou em capturas de tela, as configurações do seu tsconfig, a versão do TypeScript e os erros exatos do compilador.

Vamos perguntar:

  • Qual versão do TypeScript e qual framework?
  • O strict mode está ativado?
  • Quais erros do compilador ou problemas de tipo travam você?
  • Você está migrando um projeto JavaScript para TypeScript?

Compare os pacotes

PacotesBásicoCódigo de até 100 linhasUS$ 15PadrãoCódigo de até 400 linhasUS$ 35PremiumAté 1.000 linhas com plano de rigorUS$ 69
Prazo1 dia2 dias3 dias
Ajustes123
Linhas de códigoaté 100até 400até 1.000
Fragmentos corrigidosSimSimSim
Plano de rigorNãoNãoSim
Fazer pedido BásicoFazer pedido PadrãoFazer pedido Premium

Pagamento protegido

Você paga ao fazer o pedido, mas o dinheiro só é liberado pelo trabalho aprovado.

  • Preço fixoO preço do pacote não muda depois que você paga.
  • O dinheiro fica reservadoAo pagar, o valor fica apenas reservado. Ele só é repassado quando você aprova o trabalho.
  • Verificado antes da entregaCada resultado passa por um controle de qualidade antes de chegar até você, e você o vê na página do pedido antes de aprovar.
  • Ajustes gratuitosPeça ajustes dentro do seu briefing quantas vezes o pacote permitir.
  • Aprovação após 3 diasSe em 3 dias após a entrega você não aprovar o trabalho nem pedir ajustes, ele é aprovado automaticamente. Se você escrever no chat do pedido após a entrega, o pedido fica em espera; depois que respondermos, podemos reiniciar a contagem de 3 dias e avisaremos no chat.
  • Refazer ou reembolso totalSe o resultado não corresponder ao seu briefing e os ajustes não resolverem, ou se o trabalho levar mais que o dobro do prazo, escreva no chat do pedido: refazemos o trabalho ou reembolsamos o pagamento integralmente.
Como funciona →

Perguntas e respostas

Vocês executam o meu código?

Não. Lemos o código com atenção e analisamos como ele se comporta, mas não o executamos, então teste cada correção sugerida no seu próprio projeto.

Vocês podem só me dizer como silenciar o erro?

Podemos, mas primeiro mostramos do que o erro está protegendo você e oferecemos uma correção tipada quando ela existe.

Vocês ajudam a migrar de JavaScript?

Sim. Cole os arquivos que você está convertendo e sugerimos os tipos e a ordem de conversão.

Pacotes
Fazer pedido · US$ 35· 2 dias