微软日前提出了一项新的提案,在提案中希望可以为JavaScript带来可选的类型语法,该提案可能会使JavaScript原生自带打印稿的一些特性,使打印稿语言更快,更容易使用。
具体而言,该提案要求将类型标注(类型注解)添加到JavaScript代码中,允许类型标注被外部类型检查器检查。在运行时,JavaScript引擎会忽略这些标注并将这些类型视为注释。该提案要求JavaScript为类型划出一套语法,JavaScript引擎将忽略这些语法,但打印稿,流等工具可以使用。这项建议将为ECMAScript增加可选的类型语法。
该提案的目的是让开发者能够运行用打印稿,流或其他静态类型的JavaScript超集所编写的程序,而不需要转译。微软在公告中表示,新的语法将有效地起到注释作用,而不会改变代码的运行方式。
微软在提案中还表示,在过去十年中,静态类型检查的案例已经被证明相当成功。对JavaScript的大量投资(如微软打印稿,谷歌关闭编译器和Facebook流)为在JavaScript中声明和使用类型提供了方便的语法,并获得了在其他静态类型语言中所看到的生产力的提高。它们的语法大多不会影响运行时的语义,实际上将这些变体转换为普通的JavaScript的大部分工作都是在删除类型。
<强>此外在2020和2021年的JS调查中,静态类型也一直是JavaScript开发者强烈要求的一个功能。
类型语法在JavaScript中的兴起与下层编译(或称转译)的兴起相吻合。因为类型语法在JavaScript中没有得到原生支持,所以必须有一个工具能够在运行代码之前删除这些类型。对于像打印稿和流这样的类型系统来说,将类型清除步骤与语法降级相结合是有意义的,这样用户就不需要运行单独的工具。
这个提案将减少对构建步骤的需求,使一些开发设置变得更加简单,用户将可以更加简单地运行他们编写的代码。
微软在提案中并没要求将打印稿的类型检查放在每个浏览器和JavaScript运行时中,也没要求在浏览器中放置一个新的类型检查器。微软认为这将给JavaScript和打印稿用户带来运行时的性能和兼容性问题,也有可能阻止创新。目前该提案还处于阶段0阶段,更多提案内容可查看微软官方页面。
0 留言