微软提出了一项新提案,希望为JavaScript带来可选的类型语法,这可能会让JavaScript原生自带TypeScript的一些特性,让TypeScript语言更快更快捷更容易使用。具体来说,提案呼吁在JavaScript代码中加入类型注解(TypeAnnotations),允许类型注解被外部类型检查器检查。在运行时,JavaScript引擎会忽略这些注释并将这些类型视为注释。该提案要求JavaScript为JavaScript引擎将忽略的类型描述语法,但TypeScript、Flow等工具可以使用。该提案将为ECMAScript添加可选的类型语法。该提案的目标是使开发人员能够运行用TypeScript、Flow或其他静态类型的JavaScript超集编写的程序,而无需转译。微软在其公告中表示,新语法将有效地用作注释,而不会改变代码的工作方式。微软在提案中还表示,静态类型检查的案例在过去十年中被证明是相当成功的。对JavaScript的重大投资(例如MicrosoftTypeScript、GoogleClosureCompiler和FacebookFlow)为在JavaScript中声明和使用类型提供了一种方便的语法,并获得了在其他静态类型语言中看到的生产力提升。它们的大部分语法不会影响运行时语义,事实上,将这些变体转换为纯JavaScript的大部分工作都是删除类型。此外,在2020年和2021年的JS调查中,静态类型也是JavaScript开发者强烈要求的功能。JavaScript中类型语法的兴起与低级编译或转译的兴起同时发生。由于JavaScript本身不支持类型语法,因此必须有一个工具可以在运行代码之前删除这些类型。对于TypeScript和Flow等类型系统,将类型清理步骤与语法降级相结合是有意义的,这样用户就不需要运行单独的工具。该提案将减少构建步骤的需要,使一些开发设置更容易,并使用户更容易运行他们编写的代码。微软的提议并没有要求在每个浏览器和JavaScript运行时都进行TypeScript的类型检查,也没有要求在浏览器中使用新的类型检查器。微软认为,这会给JavaScript和TypeScript用户带来运行时性能和兼容性问题,也可能阻碍创新。该提案目前处于Stage0,更多提案可以在微软官方页面上找到。本文转自OSCHINA文章标题:微软提议为JavaScript原生添加类型注解
