微软提议为 JavaScript 原生增加类型标注


微软日前提出了一项新的提案,在提案中希望可以为 JavaScript 带来可选的类型语法,该提案可能会使 JavaScript 原生自带 TypeScript 的一些特性,使 TypeScript 语言更快、更容易使用。

具体而言,该提案要求将类型标注(Type Annotations)添加到 JavaScript 代码中,允许类型标注被外部类型检查器检查。在运行时,JavaScript 引擎会忽略这些标注并将这些类型视为注释。该提案要求 JavaScript 为类型划出一套语法,JavaScript 引擎将忽略这些语法,但 TypeScript、Flow 等工具可以使用。这项建议将为 ECMAScript 增加可选的类型语法。

该提案的目的是让开发者能够运行用 TypeScript、Flow 或其他静态类型的 JavaScript 超集所编写的程序,而不需要转译。微软在公告中表示,新的语法将有效地起到注释作用,而不会改变代码的运行方式。

微软在提案中还表示,在过去十年中,静态类型检查的案例已经被证明相当成功。对 JavaScript 的大量投资(如微软 TypeScript、Google Closure Compiler 和 Facebook Flow)为在 JavaScript 中声明和使用类型提供了方便的语法,并获得了在其他静态类型语言中所看到的生产力的提高。它们的语法大多不会影响运行时的语义,实际上将这些变体转换为普通的 JavaScript 的大部分工作都是在删除类型。

此外在 2020 和 2021 年的 JS 调查中,静态类型也一直是 JavaScript 开发者强烈要求的一个功能。

类型语法在 JavaScript 中的兴起与下层编译(或称转译)的兴起相吻合。因为类型语法在 JavaScript 中没有得到原生支持,所以必须有一个工具能够在运行代码之前删除这些类型。对于像 TypeScript 和 Flow 这样的类型系统来说,将类型清除步骤与语法降级相结合是有意义的,这样用户就不需要运行单独的工具。

这个提案将减少对构建步骤的需求,使一些开发设置变得更加简单,用户将可以更加简单地运行他们编写的代码。

微软在提案中并没要求将 TypeScript 的类型检查放在每个浏览器和 JavaScript 运行时中,也没要求在浏览器中放置一个新的类型检查器。微软认为这将给 JavaScript 和 TypeScript 用户带来运行时的性能和兼容性问题,也有可能阻止创新。目前该提案还处于 Stage 0 阶段,更多提案内容可查看微软。


相關推薦

2023-03-23

,提供了类似 ECharts 和 G2Plot 那样的通过 JavaScript 对象声明图表的能力。 目前 Spec API 目前在 G2 中已经实现,并可以通过调用 chart.options(options) 使用。但是暴露这个特性的目的只是为了收集反馈,并且给

2022-10-10

ypeScript 开发的 Anders Hejlsberg 这样描述 TypeScript: 它是 JavaScript 的类型化超集,可被编译成常用的 JavaScript。TypeScript 还可以通过启用丰富的工具体验来极大地帮助提升生产力,与此同时开发者保持不变维护现有的代码,并继续

2021-11-18

API,包括像 Promise.all 、 Promise.race 这些 JavaScript 内置模板。事实上,一些关于 Promise.all 推理的问题是促进了 Awaited 类型的研究,比如这个在 TypeScript 4.4 和更早版本中失败的例子: eclare function May

2021-11-09

。整行补全现在与 JetBrains ReSharper 的最新版本兼容。 JavaScript/TypeScript JavaScript 和 TypeScript 测试现在可以在 Visual Studio Test Explorer 中进行NPM GUI 可用,所以你现在可以像下载 Nuget 包一样下载 NPM 模块了…… .NET 6 SDK .NET 6 SDK

2023-05-25

今天凌晨,微软 Build 2023 开发者大会正式开幕,这是 2019 年以来首次回归线下举办,主题十分突出,基本是围绕“AI”展开。本文对部分值得开发者关注的亮点进行汇总。 微软推出 Windows Copilot 微软宣布在 Windows 11 中加入名

2023-05-25

在北京时间今天凌晨举办的微软 Build 2023 活动中,微软除了公布一系列 AI 方面的进展与功能外,还特别提到将在 Windows 11 系统中原生增加对 RAR、7Z 等压缩文件格式的解压支持。 当我们谈起压缩文件,大家最熟悉的文件格式应

2023-10-31

在今年 5 月份,微软方面曾宣布将在 Windows 11 系统中原生增加对 RAR、7-Zip 等压缩文件格式的解压支持。 时至今日,该公司已通过本月的可选 KB5031455 预览累积更新添加了对 11 种新文件存档格式的支持,Windows 11 22H2

2023-06-03

Tags 自动补全 Snippet TypeScript 5.1 支持在 TypeScript 和 JavaScript 文件中输入 @param 标记时的代码片段完成,帮助开发者在编写代码文档或在 JavaScript 中添加 JSDoc 类型时快速生成对应注释信息。 JSX 元素和 JSX Tag 类型之间的解

2023-02-08

、Jaeger 和 Prometheus 采用率都大幅上涨。 编程语言方面,JavaScript 和 Python 继续处于领先地位,但各行业的使用率仅略微增加了一到两个百分点。最流行的三个开源 Java 运行时依然是 OpenJDK、OpenJ9 和 Oracle Java。Oracle Java 的使用率

2023-11-23

类型推导。关于这一点,可以看如下案例: 例如对于javascript代码,参数a的类型是不清楚的——关于这一点,在typescript当中的解决方法是第二行中的案例——添加类型标注(number)。 function(a){return 1+a} function(a : number){return

2022-03-11

微软方面提出了一项提案,希望为上游 LLVM/Clang 编译器贡献 HLSL、DirectX 和 Vulkan 图形支持。 原因在于,其现有的 HLSL 编译器 DirectX Shader Compiler (DXC) 基于旧的 LLVM/Clang 3.7 分支。而微软计划将其编译器更新到最新的 LLVM,以便为

2022-03-14

微软方面提出了一项提案,希望为上游 LLVM/Clang 编译器贡献 HLSL、DirectX 和 Vulkan 图形支持。 原因在于,其现有的 HLSL 编译器 DirectX Shader Compiler (DXC) 基于旧的 LLVM/Clang 3.7 分支。而微软计划将其编译器更新到最新的 LLVM,以便为 HL

2023-04-25

不断催促改进,微软决定开始改善,首先会将重点放在 JavaScript 和 TypeScript 的开发体验上。 微软目前正在开发 Visual Studio 2022 17.6,也计划在 17.6 实装这个改进,除了优化现有的语法高亮,微软还会将这些高亮显示扩展到更大的

2022-04-08

禁用 UEFI 的用户)。 传统 BIOS 目前已被英特尔、AMD、微软和苹果等厂商弃用,并且即将遭到淘汰。随着时间的推移,BIOS 的可维护性将会持续下降,想要永久维护它对于目前从事这项工作的人来说是不可行的,拥抱 UEFI 已成为