TypeScript vs ES6 vs ES2015

neste artigo, vou dar-lhe um pouco do contexto no qual ES6, ES2015, e Transcrito existe e irá fornecer alguns exemplos concretos dos principais recursos de linguagem para ajudar você a fazer a sua mente sobre o que o direito é a solução para você.

A Brief History of ECMA

First things first, we need to define our terms. JavaScript (ou JS) é uma implementação da ECMAScript (ou ES) padrão, que é mantida pela ECMA International, um consórcio de empresas de tecnologia que incluem Adobe, Google, HP, IBM, Intel, Microsoft, PayPal, Yahoo, Apple, Netflix, Twitter, basicamente, a internet como você conhece e ama-lo. A última grande versão do ES foi ratificada em 2009 como ES5, então em 2015, quando a ratificação do ES6 aconteceu, foi um grande negócio.Em algum momento nos últimos anos, a ECMA percebeu que a web será rapidamente interrompida independentemente da tecnologia por trás dela. Em resposta, a ECMA decidiu renomear o ES6 como ES2015 para definir o cenário para atualizações anuais para a linguagem que tem um tempo de execução em praticamente todas as peças de hardware produzidas no mundo. Ao longo do caminho, Nodo.JS aconteceu e recursos de linguagem de ES são agora mais importantes do que nunca, porque JavaScript é vagamente e dinamicamente digitado. Todos sabemos o que acontece quando não és um perito em JavaScript.

o que é o TypeScript?

você pode ter ouvido recentemente o TypeScript como uma nova língua que você precisa aprender, porque o Angular 2 está usando-o ou você ouviu sobre ele vários anos e optou por ignorá-lo. Se és como eu, resistes a aprender coisas novas e desprezas o uso de tecnologia não comprovada. Eu realmente uso essas tendências para minha vantagem para filtrar o cruft do JavaScript-Framework-Of-the-Week™ sideshow. Sendo seletivo, posso me dar ao luxo de mergulhar profundamente em certas tecnologias, que libera todo o poder dessas tecnologias incríveis, para que eu possa ser mais produtivo como desenvolvedor.

um logotipo

Longa história curta, o TypeScript é JavaScript com definições de tipo aparafusado para ele, mas o kicker é os tipos são opcionais e você pode usar o TypeScript tipagens (que é uma coisa) em seu código JavaScript sem usar o TypeScript. Já estás confuso? Há mais. O TypeScript é também um super-conjunto de ES5, ES2015, ES2016 e futuro funcionalidade JavaScript com a capacidade de compilar para baixo (aka transpile) para ES3 ou ES4 para ser capaz de funcionar muito antigas de navegadores.

no BUILD 2016, Anders Hejlsberg, o inventor de C# e TypeScript, colocou-o apropriadamente: Ele beneficia desenvolvedores e usuários para usar um transpiler como TypeScript para colmatar a diferença de compatibilidade e produtividade. Em Março de 2015, todos pensaram que, uma vez que o estado da web JS alcançou o estado da arte JS, não precisaríamos mais de transpilers.

b

Como mencionei anteriormente, a ECMA decidiu adotar uma atualização regular a cadência para JavaScript, o que significa que, em Março de 2016, mesmo se o estado de web JS foi detectada, mas o estado da arte da JS continua a mover-se para a frente. Isto é chamado de lacuna de recursos.

c

Transpilers como TypeScript, Babel ou Traceur visam fechar esta lacuna de recursos. O TypeScript supera a concorrência a partir de uma perspectiva de transpile porque enquanto Babel ou Traceur são grandes ferramentas que você pode instalar em seu editor de IDE/texto ou construir um pipeline, eles podem ser buggy e depuração pode ser problemática. TypeScript em conjunto com CLI tools e Visual Studio Code oferece uma sólida experiência de desenvolvimento.

suporte sólido

TypeScript tem a vantagem de receber suporte de primeira classe por dois gigantes tecnológicos, Google e Microsoft. Tanto na BUILD como na Ng-Conf 2016, ouvi os gestores de programas dizerem que não conseguem imaginar um desenvolvimento JavaScript em grande escala sem escrever. A Microsoft colocou isso à prova implementando um novo projeto em TypeScript, no processo criando uma sólida experiência de IDE e depuração para o próprio TypeScript, ou seja, o Visual Studio Code.

d

o Google, por outro lado, fez algo completamente diferente. Não só fizeram do TypeScript um padrão para Angular 2, como também reescreveram completamente o Google AdWords (responsável por US $67 bilhões em receita) usando uma versão candidata ao lançamento do Angular 2. Este nível de confiança para qualquer projeto JavaScript é inédito porque a confiança é intrinsecamente cozida nas incríveis ferramentas de análise estática que foram construídas em torno de TypeScript.

Full-Stack TypeScript

At Excella i’ve been working on building a JavaScript specialty practice over the past 3 years focusing on the benefits of full-stack JavaScript. Com colegas, nós lançamos um aplicativo Web em tempo real, sensível e eu dei algumas palestras sobre os padrões gerais de arquitetura. Este ano eu repeti o mesmo exercício para o TypeScript full-stack, que resultou em uma nova palestra e eu posso relatar que TypeScript é o JavaScript futuro que eu posso ficar para trás.

the DL

Let’s look at some specific ES2015 and TypeScript features below, so you can make up your own mind whether to use ES2015 or TypeScript on your project.

Typings (TypeScript only)

you can start using TypeScript today using typings. Abaixo está uma imagem de A.js file que requer e tenta usar lodash. Como você pode ver, quando você atinge dot você não recebe nenhuma sugestão. Dependendo do seu IDE ou editor de texto, a lista de sugestões pode incluir todo o universo de funções JavaScript conhecidas que não estão de forma alguma relacionadas com lodash ou alguma função que você acabou de digitar algumas linhas acima.

e

Execute os seguintes comandos:

$> npm install tipagens

$> tipagens instalar lodash

E, em seguida, adicione a instrução a seguir na parte superior do seu .ficheiro js:

/// <reference path= ” typings/modules/lodash / index.D. T.” />

Voila, agora você tem todas as funções lodash disponíveis para você.

f

se você tiver alguma dúvida sobre como usar uma função particular, você obtém mais orientação da IDE quando você abre o parêntesis. Não é necessário quebrar o seu fluxo de trabalho e obter documentação no seu navegador.

g

Types (TypeScript only)

Types may sound scary, limiting, and a general headache to a JavaScript developer. Vindo de A.Fundo NET / c#, eu definitivamente aprecio que eu não tenho que configurar contratos elaborados entre componentes do sistema antes mesmo de escrever uma única linha de código útil. Usando tipos, não queremos introduzir contras semelhantes, mas em vez de trazer os prós de um sistema de Digitação. Cabe a você não usar o sistema de Digitação.

ter uma função simples que leva um parâmetro e faz algumas operações de cadeia de caracteres, retornando um número.

h

O código parece simples o suficiente, então por que precisamos de tipos? Considere um cenário em que você é o autor de Foo e você sabe que alguém vai consumir Foo ou Foo será usado em outro lugar na base de código separada de sua definição.Nesse caso, o desenvolvedor precisa de se basear em documentação, que funciona bem para bibliotecas bem documentadas como lodash, ou então terá de procurar a implementação da Foo e compreender a implementação por trás dela. Afinal, como eu deveria saber se o Foo está retornando uma string ou um número, e porque este é JavaScript, retornando tanto uma string e um número ou nada?Usando a sintaxe do cólon, podemos restringir o que a barra pode ser e o que o Foo pode retornar.

i

com esta implementação, o consumidor de Foo sabe que eles devem fornecer uma corda e eles vão receber um número de volta em troca. Eles terão o código completo ou uma linha vermelha se cometerem um erro. Além disso, este código TypeScript, quando transpilado, se parece exatamente com o código que originalmente escrevemos.

j

os tipos são apenas uma característica de tempo de compilação e não têm impacto no código de tempo de execução. Eu recomendo que você use tipos para a complicada lógica de negócios e interfaces públicas. A melhor maneira de experimentar com tipos é brincar com eles no playground do TypeScript. Não há suporte JavaScript planejado para tipos.

decoradores(TypeScript ou planned ES future)

decoradores são fortemente utilizados por Angular 2 e é uma característica crítica que completa a história Tipo. Decoradores são denotados com a sintaxe @ e podem ser anexados a classes, métodos ou parâmetros para anexar metadados ou comportamento sobre essa classe, método ou parâmetro em tempo de execução. Angular usa Decoradores para marcar classes como @Component, @Directive, @Pipe ou @Injectable para que o framework possa validar o tipo de código que o desenvolvedor pretende fornecer para otimizar o desempenho em tempo de execução.

mais detalhes sobre decoradores de tipo podem ser encontrados aqui. Futuro Suporte JavaScript para decoradores está planejado.

Classes(TypeScript ou ES2015)

pode definir classes no ES2015 e no TypeScript. Você pode escrever construtores e getters de propriedade e setters. In TypeScript class definitions also feed into the type system, so the benefits of using classes are clearer. Além disso, utilizando parâmetros de tipo em construtores de classe ou métodos, você pode criar documentação livre, fácil de usar, framework quality code.

k

Promessas (Transcrito ou ES2015)

Promessas estão disponíveis nativamente no ES2015 e TypeScript. Abaixo está um exemplo de embrulhar uma função com um callback em uma promessa. Utilizando promessas, simplificamos o código que precisa ser escrito abaixo. Promessas podem ser acorrentadas, executadas em paralelo ou podem ser usadas para adiar a execução.

l

Consulte como se conectar está sendo consumida abaixo:

m

Async/Await (Transcrito ou planejado ES futuro)

Async/await pega, onde promete nos deixar. Podemos declarar qualquer função como async, desde que esteja à espera do resultado de uma promessa. No exemplo abaixo, conecte internamente implementa promessas e está retornando uma promessa. Quando aguardamos o connect, nos bastidores, o código continua a executar assíncronamente, com callbacks e tudo, no entanto, para o desenvolvedor, especialmente quando depuração, o código parece executar sincronicamente.Este é um grande problema, em termos de evitar o inferno de callback e Código fortemente indentado. Outro benefício é como cenários de manipulação de erros anteriormente muito complicados agora tornam-se muito simples de implementar.

n

quando async / wait é usado no mais baixo de sua aplicação, ele permite que você escreva o resto de sua aplicação desta forma também, simplificando sua implementação global. Abaixo está um exemplo de como o connect é consumido.

o

TL;DR

ES2015 oferece alguns recursos modernos como classes e promessas, mas fica aquém da plena endereçamento mundo real preocupações de desenvolvimento como evitar retornos de chamada, depuração e tratamento de erros desafios trazidos pelo aninhadas código, e ainda deixando os desenvolvedores trabalhar com um transpiler para atingir o público mais amplo possível. TypeScript é uma peça notável de tecnologia, oferecendo uma experiência de desenvolvimento integrado de classe mundial. O editor de código Visual Studio Visual Free e cross-platform é a cereja no topo do bolo.

confira meu projeto inicial de digitação em pilha completa no Excella Labs e este projeto de exemplo da equipe de Digitação para estar hackeando ou criando sua grande aplicação empresarial hoje.

quais são os seus pensamentos e experiência com ES2015 ou Dactilografia?

Deixe uma resposta

O seu endereço de email não será publicado.