微软推出了Type 版本3.0,它是 的开源扩展,包括对静态类型的支持。

对于那些喜欢Type 的人来说 - 一个不断增长的群体来判断语言 排名 - 或讨厌 - 这通常与缺乏静态类型有关 - 除了突破性的变化之外,这不是一个糟糕的方式来开始本周。

“Type 是 的扩展,旨在将静态类型引入现代 ,”微软Type 语言项目经理Daniel Rosenwasser在博客文章中说。“Type 编译器读取Type 代码,其中包含类型声明和类型注释等内容,并发送清晰可读的 ,并对这些构造进行转换和删除。”

然后,该代码可以在任何ECMA 运行时中运行,例如浏览器或Node.js,他解释说。

要理解为什么这可能是值得的,请考虑 将允许您创建数字和文本变量并将它们添加到一起,从字面上将两者作为单个字符串连接起来。在强类型语言中,会出现错误消息,以鼓励程序员具体说明数字或字符串是否是所需结果。

支持数据类型的编程语言有助于使类型相关的错误更易于捕获,并且可以减少开发人员编写以验证其代码所需的单元测试数量,尽管处理数据类型需要更多的工作。

Type 是Angular前端框架的基础; 另一个领先的前端框架竞争者React可以与Type 或常规 一起使用。创建了React的Facebook也开发了Flow,这是一个用于 的开源静态类型检查器,可以作为Type 的替代品,用于那些关心类型检查的人。

Type 3.0添加了一个名为“项目引用”的功能,允许开发人员通过添加到tsconfig.json指向其他配置文件的文件的路径来指定一个Type 项目如何依赖另一个。

通过指定此类依赖项,可以将项目拆分为更易于管理的块,并可以加速构建。现在有一个--build标志可以利用增量构建。

更新后的Type 也适用于 的rest参数语法,通过该语法可以将不同数量的参数作为参数传递给函数。在3.0版之前,Type 没有一种有效的方法来为这种操作分配数据类型。

现在,该语言将rest参数视为泛型,并将它们转换为元组,从而推断出所涉及的数据类型。根据Rosenwasser的说法,微软的Type 团队必须对元组类型做一些工作才能完成这项工作。

自上次Type 发布以来,错误消息也受到了一些关注,使它们更短更清晰。

有一种新的数据类型,称为unknown,与另一种称为的全包数据类型不同any。“不像anyunknown是分配到几乎没有别的不用类型的断言,” Rosenwasser解释。“你也无法访问任何属性unknown,也无法调用/构建它们。”

unknown数据类型可能是在一个开发要确保进行类型检查或类型的断言使用了位置。它也恰好代表了一个重大变化 - 因为unknown现在是一个保留字,以前使用它作为变量名的Type 代码将无法按预期执行。

3.0版的其他新增功能包括更广泛的JSX支持(JSX是React中使用的 扩展)和polyfill的新参考指令(使新API与旧运行时一起工作的库)。

“展望未来,我们预见会为类型系统和工具体验带来更多价值,完善现有的项目参考工作,并使Type (语言和项目)更加平易近人,”Rosenwasser说。

收藏 打印