por que você deve escolher TypeScript em vez de JavaScript
TypeScript tem aumentado em sua popularidade nos últimos dois anos. É mencionado entre as cinco línguas mais promissoras em 2020. Angular, um dos maiores frameworks frontend, está usando TypeScript. Cerca de 60% dos programadores JS já usam TypeScript, e 22% desejam tentar. Por quê?
historicamente, JavaScript acabou como a principal linguagem de programação de páginas web e aplicativos na Internet. Agora é possível usar JavaScript tanto na interface frontal quanto na infra-estrutura com frameworks como Node.js e Deno.
mas JavaScript foi feito para criar sistemas grandes e complexos como os da web moderna? Nao.
neste artigo, vamos apresentá – lo a uma solução para isso – TypeScript-e começá-lo a caminho da adição de tipos ao seu código JavaScript.
Aqui estão alguns dos pontos que vamos cobrir:
- o que é escrito?
- quais são os tipos, e como eles trabalham em TS?
- JavaScript vs. TypeScript: qual escolher?
- How to get started with TypeScript.
- Further resources for studying TypeScript.
What is TypeScript?
em resumo, TypeScript é um superconjunto de JavaScript que tem digitação opcional e compila para JavaScript simples.
em palavras mais simples, TypeScript tecnicamente é JavaScript com escrita estática, sempre que você quiser tê-lo.
quais seriam as razões para adicionar datilografia estática ao JavaScript?
posso listar pelo menos três:
- você pode evitar erros de ninja escondido magistralmente como o clássico
'undefined' is not a function.
- é mais fácil de refactor código sem quebrá-lo significativamente.Orientar-se em sistemas complexos e de grande escala já não é um pesadelo.
na verdade, um estudo mostra que 15% de todos os bugs JavaScript podem ser detectados por escrito.
a liberdade de digitação dinâmica muitas vezes leva a bugs que não só diminuem a eficiência do trabalho do programador, mas também podem moer o desenvolvimento para parar devido ao aumento dos custos de adicionar novas linhas de código.
conseqüentemente, a falha de JavaScript para incorporar coisas como tipos e verificação de erros de tempo de compilação faz com que seja uma má escolha para o código do lado servidor em empresas e grandes codebases. Como a sua tagline diz, TypeScript é JavaScript que balança.
o que eu preciso aprender a usar o tipógrafo?
TypeScript é essencialmente um js linter. Ou, JS com documentação que o compilador pode entender.
Portanto, em contraste com outras línguas como o CoffeeScript (que adiciona açúcar sintático) ou PureScript (que não se parece com JavaScript), você não precisa aprender muito para se começar a escrever à Máquina de escrever código.
os tipos em TS são opcionais, e cada ficheiro JS é um ficheiro TypeScript válido. Enquanto o compilador irá reclamar se você tem erros de tipo em seus arquivos iniciais, ele dá-lhe de volta um arquivo JavaScript que funciona como ele fez antes. Onde quer que você esteja, digitação irá encontrá-lo lá, e é fácil construir suas habilidades gradualmente.
a tipografia é utilizada na frente ou na infra-estrutura?
TypeScript é compilado para JavaScript. Portanto, TS pode ser usado em qualquer lugar que JS poderia ser usado: tanto a interface frontal quanto a infra-estrutura.JavaScript é a linguagem mais popular para implementar scripts para a interface de aplicativos e páginas web. Assim, TypeScript pode ser usado para o mesmo propósito, mas brilha em projetos corporativos complexos no lado do servidor.
em Serokell, a maior parte da nossa interface web é implementada em TypeScript.
quais são os tipos, e como eles trabalham em TS?
Breve introdução aos tipos de
os Tipos são uma forma de dizer o correto programas de incorreto antes de executá-los, descrevendo em nosso código, como pretendemos utilizar os nossos dados. Eles podem variar de tipos simples como número e cadeia de caracteres para estruturas complexas perfeitamente modeladas para o nosso domínio problema.
as linguagens de programação dividem-se em duas categorias: estaticamente tipadas ou dinamicamente tipadas.
em línguas com tipagem estática, o tipo da variável deve ser conhecido no tempo de compilação. Se declararmos uma variável, ela deve ser conhecida (ou inferrable) pelo compilador se será um número, uma cadeia, ou um booleano. Pensa Em Java.
em línguas com tipagem dinâmica, isso não é necessariamente assim. O tipo de uma variável é conhecido apenas ao executar o programa. Pensa No Python.
TypeScript pode suportar a escrita estática, enquanto JavaScript não suporta.
devido à escrita estática do TypeScript, você terá que se esforçar mais para:
- introduzir variáveis indefinidas (ajuda de avisos de tempo de compilação)
- somar duas cadeias que têm números nelas (como “4” + “20” = “420”)
- fazer operações em coisas que não permitem, Como cortar um número.
com sistemas de tipo estático, você pode criar seus próprios tipos compostos. Isso permite que os engenheiros expressem suas intenções em mais detalhes.
tipos explícitos também tornam o seu código auto-documentado: eles se certificam de que suas variáveis e funções coincidem com o que é pretendido e permitem que o computador para cuidar de lembrar o contexto circundante.
Tipos de arquivo TypeScript
o TypeScript tem uma variedade de tipos básicos, como Boolean, Number, String, Array, Tupla, etc. Alguns destes não existem no JS; você pode aprender mais sobre eles na documentação do TypeScript.
além destes, Aqui estão alguns outros tipos que queremos caracterizar para mostrar a expressividade de TS:
Qualquer & Desconhecido
Enquanto qualquer como um tipo de capa, bem, qualquer coisa que você desejar, o desconhecido é o seu tipo-seguro de contrapartida.
sempre que quiser escapar do sistema de tipos, qualquer um permite atribuir-lhe qualquer variável de JavaScript. É frequentemente usado para modelar variáveis de entrada (a partir de APIs de terceiros, por exemplo) que ainda não foram verificadas e cujo tipo é Desconhecido.
desconhecido é muito parecido com qualquer outro, mas não lhe permite realizar quaisquer operações sobre a variável antes de ser explicitamente verificado por tipo.
Void
o Vazio é usado quando não existe valor retornado, por exemplo, como o tipo de retorno de funções que retornam nada.
Nunca
Nunca é o tipo de retorno para algo que nunca deve ocorrer, como uma função que irá lançar uma exceção.
Intersecção & tipos de União
Estes permitem que você crie tipos personalizados para melhor atender a sua lógica.
os tipos de intersecção permitem-lhe reunir vários tipos básicos num só tipo. Por exemplo, você pode criar um tipo personalizado que tem um name: string
e um phone_number: number
. É equivalente a dizer: quero que o meu tipo seja isto e aquilo.
os tipos de união permitem que o seu tipo tome um dos vários tipos básicos. Por exemplo, você pode ter uma consulta que retorna tanto result: string
ou undefined
. É equivalente a dizer: quero que o meu tipo seja isto ou aquilo.
se você pensa em tipos como espaços, todos estes tipos rapidamente fazem sentido.
os tipos em TypeScript podem ser implícitos e explícitos. Se você não escrever explicitamente seus tipos, o compilador irá usar o tipo de inferência para inferir os tipos que você está usando.
escrevê-los explicitamente, no entanto, dá benefícios como ajudar outros desenvolvedores que ler o seu código e ter certeza de que o que você vê é o que o compilador vê.
TypeScript vs. JavaScript
vale a pena ser pragmático. Dê uma olhada neste gráfico:
Do nada, o TypeScript é agora a 7ª posição no GitHub pull requests para Q1 2020, acima de PHP e C. (Fonte)
Enquanto uma considerável causa disso é o apoio do TypeScript por empresas como a Microsoft (que o criou) e o Google, é suportado por uma boa razão.
3 razões para escolher o TypeScript sobre JavaScript
1. O TypeScript é mais confiável
Em contraste com o JavaScript, o código TypeScript é mais confiável e mais fácil para refatorar. Isto permite aos programadores evitar erros e reescrever muito mais facilmente.
os tipos invalidam a maioria dos erros tolos que podem entrar furtivamente nas codebases JavaScript, e criar um loop de feedback rápido para corrigir todos os pequenos erros ao escrever novo código e refactorar.
2. Tipescript é mais explícito
tornar os tipos explícitos enfoca nossa atenção em como exatamente nosso sistema é construído, e como diferentes partes dele interagem entre si. Em sistemas de grande escala, é importante ser capaz de abstrair o resto do sistema, mantendo o contexto em mente. Os tipos permitem-nos fazer isso.
3. TypeScript e JavaScript são praticamente intercambiáveis, então por que não?
uma vez que JavaScript é um subconjunto de TypeScript, você pode usar todas as bibliotecas de JavaScript e código que você quer em seu código de TypeScript.
as bibliotecas JavaScript mais populares têm tipos em 2020 – definitivamente digitado é um repositório com tipos para um monte de diferentes bibliotecas JavaScript que você pode usar para tornar as suas interações com eles mais seguras do tipo.
isto significa que você pode adotar gradualmente TypeScript na sua base de código JavaScript, primeiro adicionando tipos a módulos individuais e depois expandindo para … consumir o universo conhecido, eu acho.
Desvantagens do TypeScript
Você não pode simplesmente tomar um site de equipe ou de um JavaScript repositório e imediatamente coloque-os idiomáticas Transcrito. Há trocas e sacrifícios antecipados que tens de fazer.
embora possamos discutir sobre as economias que, sendo explícitas sobre os tipos, lhe dão a longo prazo, a curto prazo, leva mais tempo para adicioná-las. Isto não é um grande negócio, mas é um argumento a favor do JavaScript.
portanto, você pode não escolher TypeScript para pequenos projetos e protótipos para seu próprio uso.
Testes vs. Tipos de
Ao toque rapidamente a discussão de teste vs. tipos: ambas estas coisas pegar diferentes classes de erros, de modo que faz sentido em um partidária como forma.
pode ainda usar técnicas mais avançadas e testes baseados em Propriedades com TS, mantendo os benefícios de um sistema de tipo estático.
em suma, aqui está uma comparação rápida de ambas as línguas:
Transcrito | JavaScript |
---|---|
o TS é um object-oriented linguagem de script | JS é um objeto-linguagem de scripts orientada a |
Dependente de idioma (compila para JavaScript) | Independente de idioma (pode ser interpretada e executada) |
Linguagem compilada, não pode ser executado diretamente em um navegador | linguagem Interpretada, executado diretamente em um navegador da web |
Pode ser digitado estaticamente | Dinamicamente tipada |
Melhor estruturado e conciso | mais flexível, uma vez que não está limitado pelo sistema de tipo |
tem um .TS extension | Has A.extensão js |
Criado no Microsoft por Anders Hejlsberg (designer de C#) e mantida pela Microsoft | Criada por Brendan Eich (Netscape) e mantida pela ECMA (European Computer Manufacturers Association). |
Uma escolha justa para projectos complexos | Bom trabalhar com pequenos projetos |
Transcrito guia de início rápido
compilador do TypeScript
Para compilar o TS código, você precisa para instalar o tsc
(curta para o compilador do TypeScript). A maneira mais fácil de o fazer é através do terminal. Isto pode ser feito facilmente através de npm
usando o seguinte comando:
npm install -g typescript
se você quiser usar o TypeScript com o Visual Studio Code, há um guia prático em seu site.
uma vez instalado tsc
, pode compilar os seus ficheiros com tsc filename.ts
.
Migrar seus arquivos de JavaScript para o TypeScript
Vamos dizer que nós queremos mudar o JavaScript seguinte arquivo TypeScript devido ao comportamento estranho:
function my_sum(a, b) { return a + b; }let a = 4; let b = "5";my_sum(a, b);
Boa notícia. Qualquer arquivo JS é tecnicamente um arquivo TypeScript válido, então você está até um ótimo começo – basta mudar a extensão de arquivo para .é de .js.
TypeScript tem o tipo de inferência, o que significa que ele pode automaticamente inferir alguns dos tipos de uso sem que você adicioná-los. Neste caso, presume-se que a função SOMA duas variáveis de tipo Qualquer, o que é verdade, mas de nenhum grande uso agora.
se queremos SOMAR apenas números, podemos adicionar uma assinatura de tipo a my_sum
para fazê-lo aceitar apenas números.
function my_sum(a: number, b: number) { return a + b; }let a = 4; let b = "5";my_sum(a, b);
Now, TypeScript provides us with an error.
Argument of type 'string' is not assignable to parameter of type 'number'.
Ainda bem que descobrimos onde está o erro. 🙂 Para escapar mais erros como estes, você também pode adicionar definições de tipo para variáveis.
let b: number = "5" // Type '"5"' is not assignable to type 'number'.let b: number = 5 // Everything ok.
TypeScript is quite flexible in what it can do and how it can help you. Para um exemplo menos trivial sobre como mover a sua base de código JavaScript existente para TypeScript ou usar TypeScript para melhorar o seu código JS, leia este guia.Como utilizar o TypeScript num navegador?
para executar o TypeScript em um navegador, ele precisa ser transpilado para JavaScript com o compilador TypeScript (tsc). Neste caso, tsc
cria um novo .arquivo js baseado no .código ts, que você pode usar de qualquer maneira que você poderia usar um arquivo JavaScript.
Recursos para a continuação da aprendizagem
Transcrito Mergulho Profundo
Este livres de recursos da web tem tudo que você precisa para começar com o TypeScript, incluindo explicações mais detalhadas sobre as seções já cobrimos aqui.
Aprenda A Escrever Do Zero!
Uma prática de 3 horas, o curso que passa por todas as funções básicas do TypeScript, como usá-lo para interagir com alguns frameworks JS, e como usar o poder do TypeScript ao escrever JavaScript.
Exercism
Exercism é o melhor recurso para praticar a escrita de código em uma nova linguagem de programação. Mentores que irão orientá – lo para o código idiomático, muitas tarefas divertidas de prática-não há nada para não amar neste site.Conclusões
em geral, TypeScript é uma grande ferramenta para ter em seu conjunto de ferramentas, mesmo que você não usá-lo para a sua capacidade total. É fácil começar pequeno e crescer lentamente, aprendendo e adicionando novos recursos à medida que você vai. Digitação é pragmática e acolhedora para iniciantes, então não há necessidade de ter medo.
espero que este artigo seja útil na sua viagem dactilografada. Se você quer ajuda ou tem algumas perguntas, certifique-se de fazê-las em nossas redes sociais como Twitter ou Facebook.