Ander Hejlsberg participou novamente da conferência Microsoft's Build de 2016, e dessa vez para falar sobre o estado atual do TypeScript e mostrar as diversas melhorias que estão por vir nos próximos meses.
Hejlsberg dividiu sua palestra em três partes, usando os primeiros 15 minutos para explicar a história do TypeScritpt. Descrevendo a linguagem como "TypeScript: o JavaScript que escala" e explicando que o principal objetivo da linguagem é fornecer as funcionalidades que o JavaScript não possui. E na seção de demonstrações, foi exibido a funcionalidade de checagem de tipos básicos, a funcionalidade de autocompletar e a comparação entre o código fonte e o código gerado pelo compilador.
Depois de um pequena introdução, foi demonstrado o que mudou desde a palestra realizada na Microsoft's Build 2015, sendo a equipe já entregou quatro releases principais desde o último ano.
Na demonstração com o Angular 2, Hejlsberg mostrou como embutir o compilador TypeScript direto no navegador, eliminando a etapa de recompilar todo o código após alterar um arquivo.
Hejlsberg pegou a mesma aplicação de demonstração e a repetiu dessa vez utilizando React, mostrando a habilidade do TypeScript de entender JSX. Para demonstrar a capacidade do TypeScript, ele refatorou o nome de um componente e mostrou como o TypeScript atualizou todas as referências no projeto, incluindo até mesmo os arquivos JSX. Na demonstração também havia a integração com webpack e o loader TypeScript mantido pela comunidade.
O que estamos alterando em nossas nossas ferramentas - Visual Studio e Visual Studio Code - é utilizar a infraestrutura do TypeScript como nosso serviço de linguagem para o JavaScript. Inclusive o Visual Studio Code já está adotando esse modelo.
O serviço de linguagem é chamado de Salsa e o Visual Studio Code, que está na versão 1.0.0, começou utilizar desde a versão 0.10.10 lançada em fevereiro de 2016.
O compilador TypeScript modificado pode usar qualquer jsdoc fornecido pelo desenvolvedor. Além disso, se existir qualquer arquivo de definição TypeScript no projeto, o Salsa pode usá-los para fornecer a funcionalidade de autocompletar para JavaScript.
No final da palestra, foi comentado sobe o futuro do TypeScript, o planejamento da versão do TypeScript 2.0 consiste de:
- Tipos não nulos;
- Controle de fluxos baseado em análises de tipos;
- Suporte baixo nível de Async/Await;
- Propriedades Readonly;
- O tipo "this" declarado em funções;
- Melhorias na funcionalidade de aquisição e uso das definições de tipo.
A versão 2.0 é esperada para ser lançada nos próximos meses.
Sobre a próxima funcionalidade de tipos não nulos, uma flag no compilador chamada strictNullChecks estará disponível e eliminará a possibilidade para um tipo ser undefined ou null. Um número pode ser somente um número, nunca undefined ou null.
Depois da demonstração da funcionalidades de "tipos não nulos" e do "controle de fluxo baseado em análise de tipo", Hejlsberg enfatizou: "Este código não possui bugs".
Uma outra demonstração, no fim da palestra, mostrou a eficiência do compilador com a funcionalidade de checagem de tipos, e como isso pode facilmente evitar comportamentos indesejáveis que fazem parte da linguagem JavaScript.
Por fim, Hejlsberg disse: "o JavaScript tem algumas peculiaridades, mas é possível ensinar o compilador sobre isso, e o compilador pode checar todos esses comportamentos".
Para mais detalhes sobre o futuro do TypeScript, assista o vídeo da palestra "What's New in TypeScript" no Channel 9, ou confira os slides.