A equipe do TypeScript anunciou recentemente a versão 3.0 que introduziu novas técnicas para criar projetos em escala, operações em parâmetros de listas, novos tipos para reforçar conferencias explicitas melhorias na experiencia do usuário desenvolvedor para lidar com erros reportados no TypeScript.
O TypeScript 3.0 tem poucas mudanças que causariam problemas para aqueles que forem migrar do 2.0. Isso foi feito com a intenção de tentar promover o máximo de migrações possíveis. As atualizações que podem causar algum tipo de problema de versão são as seguintes:
- “unknown” foi adicionado como uma palavra reservada do sistema e com isso pode causar problemas com algumas declarações
- Foram removidas as seguintes funcionalidades após terem sido descontinuadas (deprecated) a um tempo atrás:
- O método interno “LanguageService#getSourceFile”.
- A função “TypeChecker#getSymbolDisplayBuilder”
- As interfaces associadas com a função acima. Estas devem ser substituídas pelos construtores do node e builder.
- A função escapeIdentifier.
- A função unescapeIdentifier.
- As seguintes funções foram mudadas para funções internas do TypeScript e não são mais partes da API pública:
- TypeChecker#getSuggestionForNonexistentProperty
- TypeChecker#getSuggestionForNonexistentSymbol
- TypeChecker#getSuggestionForNonexistentModule
A alteração mais significativa no TypeScript 3.0 são referências de projeto, que se esforçam para reduzir a complexidade ao gerenciar várias dependências do TypeScript. As referências de projeto permitem que os arquivos de configuração do TypeScript (tsconfig.json) façam referência a outros arquivos de configuração, simplificando a separação de árvores de código-fonte em projetos menores. O TypeScript e suas ferramentas são atualizados para entender as referências do projeto e a ordem em que os projetos são criados e precisam ser estruturados.
Além de permitir que ferramentas de terceiros aproveitem os recursos de compilação incremental do TypeScript, o TypeScript 3.0 também inclui um novo sinalizador –build para executar operações simples de compilação.
Maior controle sobre a estrutura de saída de um projeto é outro benefício das novas referências de projeto e ferramentas de construção. Um caso de uso típico apresentado é o código-fonte compartilhado entre aplicativos do lado do cliente e do lado do servidor. Anteriormente, esse código seria criado duas vezes e, agora, com referências de projeto, a dependência compartilhada precisa ser criada apenas uma única vez.
Como esse é um recurso muito novo, a equipe do TypeScript espera que outros autores de ferramentas possam suportar facilmente referências a projetos, e o gerente de programa do TypeScript, Daniel Rosenwasser, “para referências de projeto serem tão simples quanto um código de autoria com um único tsconfig.json”. A equipe do TypeScript está ativamente buscando feedback sobre como tornar as referências do projeto e as construções mais fáceis de usar.
O projeto TypeScript adiciona tipos de tupla mais ricos, incluindo elementos opcionais à direita, elementos de reestruturação no final da tupla e tipos de tupla vazia. Esses aprimoramentos ajudaram a tornar possível extrair e distribuir listas de parâmetros com tuplas.
Além disso existem mais diversas alterações que valem a pena serem conferidas no blog oficial da Microsoft. Acesse https://blogs.msdn.microsoft.com/typescript/2018/07/30/announcing-typescript-3-0/ e também https://www.typescriptlang.org/docs/handbook/release-notes/typescript-3-0.html veja também exemplos práticos de como a atualização afetou o desenvolvimento e o que você pode fazer para utilizar o TypeScript 3.0