Propõe-se adicionar uma sintaxe com informações de tipo à linguagem JavaScript

Microsoft, Igalia e Bloomberg tomaram a iniciativa de incluir sintaxe na especificação JavaScript para definições de tipo explícitas, semelhante à sintaxe usada na linguagem TypeScript. Atualmente, as alterações do protótipo propostas para inclusão no padrão ECMAScript são submetidas para discussões preliminares (Etapa 0). Na próxima reunião do comitê TC39, em março, está prevista a passagem à primeira fase de apreciação da proposta com o envolvimento da comunidade de especialistas da ECMA.

Ter informações de tipo especificadas explicitamente permitirá evitar muitos erros durante o processo de desenvolvimento, possibilitará o uso de técnicas adicionais de otimização, simplificará a depuração e tornará o código mais legível e mais fácil para modificação e suporte por desenvolvedores terceiros. O suporte de tipo é proposto para ser implementado como um recurso opcional - mecanismos JavaScript e tempos de execução que não suportam verificação de tipo ignorarão anotações com informações de tipo e processarão o código como antes, tratando dados de tipo como comentários. Mas as ferramentas de verificação de tipos poderão usar as informações disponíveis para identificar erros associados ao uso incorreto de tipos.

Além disso, em contraste com as informações de tipo especificadas usando anotações JSDoc especificadas na forma de comentários, a indicação direta de tipos diretamente nas construções de definição de variáveis ​​tornará o código mais visual, compreensível e mais fácil de editar. Por exemplo, IDEs com suporte a TypeScript serão capazes de destacar imediatamente erros no código JavaScript digitado sem conversões adicionais. Além disso, o suporte de tipo integrado tornará possível executar programas escritos em dialetos JavaScript digitados, como TypeScript e Flow, sem transpilar de uma linguagem para outra.

Propõe-se adicionar uma sintaxe com informações de tipo à linguagem JavaScript

Dentre os tipos, propõe-se adicionar “string”, “número” e “booleano”, que podem ser utilizados na definição de variáveis, parâmetros de função, elementos de objeto, campos de classe, arrays digitados (“número[]”). Também é proposto fornecer suporte para tipos mesclados (“string | número”) e genéricos. deixe x: string; função add(a: número, b: número) { return a + b; } interface Pessoa { nome: string; idade:número; } função foo (x: T) { retornar x; } função foo(x: string | número): string | número { if (typeof x === número) { retornar x + 1 } else { retornar x + "!" } }

Fonte: opennet.ru

Adicionar um comentário