TypeScript 3.5: Os novos recursos do TypeScript

TypeScript 3.5: Os novos recursos do TypeScript

7 de setembro de 2019 0 Por Ramos de Souza Janones
Powered by Rock Convert

Conheça os novos recursos do TypeScript 3.5: com mais desempenho, novo tipo Omit e verificação de tipos melhorada e muito mais.

A equipe do TypeScript anunciou o lançamento da versão 3.5, que inclui melhorias de desempenho na verificação de tipos, além de um novo tipo Omit.

No TypeScript 3.4, havia sido adicionado o novo flag –incremental, permitindo salvar informações do grafo do projeto originadas da última compilação. Isso permite detectar a maneira mais rápida de verificar tipos e emitir alterações para um projeto, reduzindo tempos de compilação subsequentes. A versão 3.5 traz melhorias nessa abordagem, conforme explica o gerente de programa da equipe do TypeScript, Daniel Rosenwasser:

“O TypeScript 3.5 inclui otimizações na forma de armazenar em cache o estado do programa/ambiente que foi calculado – incluindio configurações do compilador e os motivos porque arquivos foram consultados, onde esses arquivos foram encontrados etc. Em cenários envolvendo centenas de projetos que usam referências de projeto do TypeScript no modo –build, descobrimos que o tempo de criação de novos builds pode ser reduzido em até 68%, se comparado ao TypeScript 3.4!”

Mais rápido

Para acelerar o tempo de verificação de tipos em geral, e para resolver certos retrocessos de desempenho em type-checking trazidos na versão 3.4, a equipe do TypeScript concentrou-se em otimizar caminhos no código (code paths), tornando a nova versão mais rápida para muitas verificações incrementais de tipos – além de acelerar o processo de compilação, de autoconclusão de código e de outras operações de programação.

Em um padrão de codfificação típico em TypeScript, é criado um novo tipo que omite propriedades específicas de outro tipo. Antes do TypeScript 3.5, normalmente seria usada uma combinação dos helpers Pick e Exclude para definir um padrão de Omit (omissão). A versão 3.5, no entanto, adiciona um novo tipo Omit. Um exemplo disso, fornecido pela equipe da linguagem, mostra o processo de definição de um tipo Person sem a propriedade location antes e depois da versão 3.5.

No TypeScript 3.4, sem Omit:

Curso completo de Games, inclusive Realidade Aumentada.Powered by Rock Convert
type Person = {
    name: string;
    age: number;
    location: string;
};

type RemainingKeys = Exclude<keyof Person, "location">;

type QuantumPerson = Pick<Person, RemainingKeys>;

// equivalent to
type QuantumPerson = {
    name: string;
    age: number;
};

No TypeScript 3.5, com Omit:

type Omit<T, K extends keyof any> = Pick<T, Exclude<keyof T, K>>;

Pode-se aproveitar o novo Omit e outros tipos de helper predefinidos usando lib.d.ts.

O TypeScript suporta a verificação de propriedades em excesso/espúrias nos literais de objetos, detectando erros de digitação quando um tipo contém uma propriedade inesperada.

Antes do TypeScript 3.5, algumas propriedades espúrias eram permitidas, como uma propriedade de nome em um objeto literal — isso porque uma union não discriminada não faria a verificação de propriedades espúrias em seus membros. Na versão 3.5, o TypeScript verifica se todas as propriedades fornecidas pertencem a algum membro da union e ao tipo apropriado.

O TypeScript 3.5 melhora a verificação de tipos de união (union types). Ao verificar esses tipos, o TypeScript normalmente compara isoladamente cada tipo constituinte. Antes da versão 3.5, em alguns casos, a verificação de tipos falhava ao encontrar uma definição não suficientemente específica. Se um membro do tipo, por exemplo, permitisse um valor verdadeiro ou falso, e outro permitisse que a mesma propriedade fosse booleana, a verificação falharia.

No TypeScript 3.5, agora os tipos são decompostos em uma união de todos os tipos possíveis. Como boolean é uma união de verdadeiro e falso, esse exemplo passaria pela verificação de tipos na versão 3.5.

O TypeScript 3.4 introduziu o suporte para funções inferirem os tipos a partir de outras funções genéricas. O TypeScript 3.5 generaliza essa funcionalidade, trazendo a inferência também para construtores.

A nova inferência permite que funções que operam em componentes de classes, em algumas bibliotecas de front-end como o React, operem mais corretamente em componentes de classe genéricos.

Entre outros novos recursos incluídos no TypeScript 3.5 estão a flag –allowUmdGlobalAccess; a API Smart Select, que permite a editores expandir seleções de texto levando em conta a estrutura sintática do código; e uma refatoração para extrair tipos para aliases de tipos locais.

O TypeScript 3.5 introduz alterações que podem quebrar código em versões anteriores, todas consequências do uso das novas funcionalidades:

  • Parâmetros genéricos de tipos são implicitamente restritos a unknown
  • { [k: string]: unknown } não é mais um alvo de atribuição wildcard
  • Correções em escritas inseguras em tipos de acesso indexados
  • Object.keys rejeita primitivas no ES5
  • lib.d.ts inclui o helper do tipo Omit

A equipe do TypeScript já está trabalhando em funcionalidades para o TypeScript 3.6, incluindo melhorias para geradores e iteradores, suporte para campos de classe privados em ECMAScript e outras melhorias no compilador, na infraestrutura e no editor.

O TypeScript é um software de código aberto disponível sob a licença Apache 2. Contribuições e comentários são encorajados, no projeto do TypeScript no GitHub, e devem seguir as diretrizes de contribuição do TypeScript e o código de conduta open source da Microsoft.

» Programação » Javascript 

React Native Do Zero Ao Profissional: crie apps para Android e IOSPowered by Rock Convert
Siga os bons!

Ramos de Souza Janones

Janones, é um empreendedor brasileiro apaixonado por empreendedorismo e tecnologia. Ao longo dos anos trabalhando com o desenvolvimento de softwares desktop desde a linguagem Clipper, passando pelo Delphi e atualmente com Java.

Optou pela formação de Publicidade e Marketing por sua segunda empresa de tecnologia ter participado do "boom" da internet nos anos 90 e na procura de melhorar seus conhecimentos em negócios.

Em razão da principal formação e profundos conhecimentos em programação e banco de dados, é capaz de realizar o desenvolvimento de aplicativos web, desktop e mobile com maior criatividade e inovação que profissionais de desenvolvimento com uma formação única e mais especifica, dedicada somente ao desenvolvimento de softwares.

Com toda sua experiência com empresas de software, sua formação e paixão por negócios escreveu o livro "Marketing para Empresas e Profissionais de Software", publicado pela editora carioca Ciência Moderna em 2012. Além de outros livros sobre programação.

Últimos posts por Ramos de Souza Janones (exibir todos)




Frontend Do Zero Ao Profissional