Pular para o conteúdo principal
Tooletto

Formatador de TypeScript

Uma predefinição de Formatador de JavaScript

Formate TypeScript com suporte completo para anotações de tipo, genéricos, decoradores e interfaces. Usa o analisador de TypeScript em vez do de JavaScript, então a sintaxe de tipos é entendida em vez de tratada como um erro.

  • Os arquivos nunca saem do seu dispositivo
  • Grátis, sem cadastro
  • Sem marcas d'água
  • Funciona offline depois de carregado
Loading tool…

Como formatador de javascript

  1. 1

    Cole seu código

    JavaScript, TypeScript ou JSX.

  2. 2

    Defina seu estilo

    Indentação, ponto e vírgula e preferência de aspas.

  3. 3

    Copie o resultado

    Formatado exatamente como o Prettier faria no seu editor.

Por que TypeScript precisa de seu próprio analisador em vez de reutilizar o do JavaScript

TypeScript é um superconjunto de JavaScript, mas a sintaxe de nível de tipo que adiciona — interfaces, genéricos restritos com `extends`, decoradores, asserções de tipo `as`, e declarações independentes somente de tipo — não tem nenhum significado na gramática do JavaScript puro e faz com que um analisador apenas de JavaScript falhe diretamente em TypeScript perfeitamente válido. Usar o analisador dedicado do TypeScript em vez de tentar forçar o de JavaScript a aceitar um superconjunto de sua própria gramática é o que permite que um arquivo cheio de genéricos e interfaces seja formatado corretamente em vez de ser rejeitado como um erro de sintaxe no momento em que usa um recurso que o JavaScript em si não tem.

JSX dentro do TypeScript, especificamente

Um arquivo `.tsx` que combina sintaxe JSX com anotações de tipo do TypeScript é genuinamente ambíguo de analisar em um ponto específico: uma asserção de tipo entre colchetes angulares como `<Foo>value` parece idêntica ao início de uma tag de elemento JSX para um analisador que não foi informado qual dialeto está lendo. Selecionar o modo de análise TypeScript-com-JSX resolve essa ambiguidade corretamente, por isso escolher o dialeto correto de antemano — em vez de assumir que um analisador JavaScript genérico vai resolver isso — importa especificamente para arquivos de componente que misturam os dois.

Decoradores continuam sendo uma parte em evolução da sintaxe

Decoradores — as anotações estilo `@Component` comuns no Angular e em alguns frameworks de backend construídos sobre TypeScript — passaram por vários estágios distintos de proposta no processo de padronização da linguagem, e bases de código diferentes podem visar versões ligeiramente diferentes dessa sintaxe dependendo de quando foram escritas e quais opções de compilador usam. Analisar corretamente a sintaxe de decoradores exige especificamente o analisador ciente de TypeScript; um analisador de JavaScript puro que encontra um `@` antes de uma classe ou método não tem nenhum significado definido para recorrer e vai rejeitar o arquivo diretamente.

Perguntas frequentes

É o mesmo que rodar o Prettier localmente?

Sim — é o próprio Prettier, rodando no seu navegador em vez de no Node. Com as mesmas opções você obtém uma saída idêntica byte a byte ao `npx prettier` no mesmo arquivo.

Por que não usar um formatador mais simples?

Porque formatadores ingênuos quebram código real. Chaves dentro de literais de template e expressões regulares, JSX, e inserção automática de ponto e vírgula todos exigem realmente analisar a linguagem. Um formatador que corrompe silenciosamente um arquivo em cada cinquenta é pior que nenhum.

Funciona com TypeScript e JSX?

Sim. Anotações de tipo, genéricos, decoradores e JSX são todos analisados. Note que ele apenas formata — não verifica tipos nem compila.

Por que a formatação falhou?

O código tem um erro de sintaxe — o Prettier precisa analisá-lo antes de poder imprimi-lo. A mensagem inclui a linha e coluna do primeiro problema, o que geralmente é suficiente para encontrá-lo.

Meu código é enviado para um servidor?

Não. O Prettier é baixado para o seu navegador e roda ali. Código proprietário nunca sai da sua máquina, o que não é verdade para a maioria dos formatadores online.