TypeScript团队继续以双月发布节奏发布了TypeScript 3.3,这一版本改进了调用联合类型的行为以及复合项目增量文件的监听性能。该团队还宣布了未来六个月的TypeScript路线图。

TypeScript 3.0增加了对复合项目的支持,可以将大型项目分成较小的项目,改进–build模式下的构建时间,而且只重新编译必要的项目和依赖项,以此来优化项目间的构建。同时还增加了一个项目内增量构建API,用于更新发生变更或包含可能会影响类型检查的依赖项的文件。

在3.0发布之后,有关在复合项目中使用–watch标志的性能问题的抱怨有所增加。复合项目并没有利用项目内增量构建功能,而是进行完整的项目构建。

现在,在TypeScript 3.3的–build模式下使用–watch标志可以利用增量文件监听功能显著改善构建时间,可以将构建时间平均缩短50-75%。

TypeScript支持联合类型,开发人员可以访问联合成员所共有的属性。在调用类型时,如果每个类型没有具有相同参数的调用签名,就很难为返回类型定义联合。

在TypeScript 3.3中,每个联合成员的参数组合在一起形成新的签名。只有当联合中有一个类型具有多个重载并且有一个类型具有通用签名时,才会应用新的行为。TypeScript团队在TypeScript 3.3中添加这一新增功能,作为改进方案的第一步,并可能在将来的版本中做出进一步的改进。

与最近发布的版本相比,TypeScript 3.3只提供了相对适度的新功能,主要是因为双月发布节奏刚好碰上了寒假,但也可能是因为TypeScript团队在六个月路线图中提及的内容,线路图重申了除了为语言添加更多功能之外的工作:

  • 将类型带给所有开发者;
  • 借助强大的工具提高生产力;
  • 可访问性和用户体验;
  • 社区参与;
  • 基础设施和工程系统;

TypeScript团队仍然专注于添加新的ECMAScript功能和改进TypeScript,但它已达到了一定程度的稳定性。

在过去的一年中,TypeScript在JavaScript生态系统得到了大规模采用,包括Vue.js的下一个版本、Jest和Storybook将迁移到TypeScript。很多开发人员和项目正在从JavaScript迁移到TypeScript,而有一些则从Flow迁移到TypeScript。

来自Hootsuite的软件工程经理Ovidiu Bute解释了他们为什么要迁移到TypeScript:

我们还观察了与这两个项目相关的社区。Flow由Facebook以一种非常封闭的方式驱动,开发从来都不透明,也没有提供公开的路线图,除Facebook以外很少有人参与这个项目。相比之下,TypeScript在几年前迁移到GitHub之后就开始拥抱开源。他们保持最新的路线图,接受外部贡献,并与社区保持非常密切的关系。

Babel原始作者和Facebook工程师Sebastian McKenzie在回答用户提出的有关Flow的功能时解释道:

老实说,我建议现在切换到TypeScript,因为Flow的开源之旅不被重视。

Flow团队已经开始着手解决这些问题,可以在这里看到最近的进展和2019年的计划。Facebook软件工程师Avik Chaudhuri阐述了从Flow到TypeScript的迁移:

最近,一些最初由Facebook创建的开源项目计划使用TypeScript重写。在Facebook,我们非常重视各个团队在创建路线图以及在他们尽最大努力构建产品时的独立性。一些项目决定切换到TypeScript,有了外部贡献者,开发可能会更容易,我们尊重他们的决定。

一些现有框架(如Angular、Dojo和Ionic)已经使用了TypeScript,一些框架则计划切换到TypeScript,或者至少提供了类型定义或CLI工具,由此可见,一大部分JavaScript开发人员现在正在采用TypeScript。

TypeScript是基于Apache 2许可发行的开源软件。开发人员可以通过TypeScript GitHub项目参与贡献和提供反馈,并遵守TypeScript贡献指南和微软开源行为准则。

查看英文原文:https://www.infoq.com/news/2019/02/typescript-3-3-release

TypeScript 3.3发布:改进了联合类型调用和构建时间相关推荐

  1. TypeScript学习(三):联合类型及推论

    前面说到了typescript中的数据类型的定义及类型推论,定义的方式也就是单数据类型定义或者是任意类型的定义,但是我们在开发中,有时候会涉及到一些变量的值类型校验,例如只需要数值和字符串,或者数值和 ...

  2. IEEE 解除华为限制;AWS、谷歌云大规模故障;TypeScript 3.5 发布 | 极客头条

    快来收听极客头条音频版吧,智能播报由标贝科技提供技术支持. 「CSDN 极客头条」,是从 CSDN 网站延伸至官方微信公众号的特别栏目,专注于一天业界事报道.风里雨里,我们将每天为朋友们,播报最新鲜有 ...

  3. Typescript 下 Mongoose 外键类型外键数组类型定义类型保护联合类型理解

    最近给项目上Typescript,记录在迁移的过程中遇到的一个问题. 问题背景 下面这段代码 定义了一个User 接口, Company接口, Order接口以及相应的mongoose model. ...

  4. 系统学习 TypeScript(五)——联合类型

    前言 在初步学习了 TypeScript 的变量声明后,对它的静态类型检查功能简直是爱不释手,但同时也发现一个问题:在正常的开发中,一个变量的类型有时可能不仅仅只限于 number 或者 string ...

  5. TypeScript中的联合类型、类型别名、接口、类型断言

    一.联合类型 在TypeScript中,联合类型(Union Types)是指用"|"符号将多个类型组合成一个的类型.这种类型可以包含不同的类型,例如字符串.数字或对象.这些不同类 ...

  6. 零基础入门Typescript—类型推论,联合类型和类型断言

    类型推论 - type inference 在类型脚本中,有的地方使用类型推论在没有明确类型注释时提供类型的信息 例如: let x = 3; 我们没有声明类型,但是类型推论其为number类型 联合 ...

  7. TypeScript高级类型:联合类型、交叉类型和类型别名

    目录 引言 联合类型 交叉类型 类型别名 注意 结论 引言 TypeScript 是一门强类型语言,其高级类型功能使得开发者能够更加灵活地定义类型并对其进行操作,以便于更好地编写可维护和可扩展的代码. ...

  8. typeScript复杂数据类型--任意类型、类型推论、联合类型、对象的类型(接口)、数组的类型、函数的类型

    目录 1.任意值 什么是任意值类型 未声明类型的变量 2.类型推论 3. 联合类型 访问联合类型的属性或方法 4.对象的类型--接口 什么是接口 可选属性 任意属性 只读属性 1.任意值 任意值(An ...

  9. TypeScript 联合类型(union type)

    TS是JS的超集,在JS的基础上添加了一套类型系统,这样的TS可以被静态分析带来的好处显而易见. let val: string = 'val'; 声明一个string类型的变量val. let va ...

最新文章

  1. MYSQL之SQL语句练习及思路_1
  2. 《软件工程方法与实践》—— 导读
  3. python工作技巧_Python常用小技巧汇总
  4. iAPP(05)自习室占座
  5. 查看环境列表_Xfce 4.14桌面环境正式发布,想要图形界面又想节省内存?就它了...
  6. java抽象机制_Java很好学:接口+抽象类+事件监听机制
  7. C/C++ 变参函数
  8. -lavutil -lavcodec -lavdevice -lavfilter -lavformat链接失败,换用-lffmpeg
  9. Node.js及Express的下载、安装和配置教程
  10. 电视机魔百盒显示连接服务器失败,【当贝市场】魔百盒EPG主页加载不出来办法详解...
  11. 智慧园区一体化信息管理平台设计方案
  12. 电子表格是计算机几级,计算机一级电子表格文档.doc
  13. 导带电子浓度和价带空穴浓度
  14. RadioButton设置默认选中后无法取消,可选中多个的问题
  15. 检测特殊字符的正则表达式
  16. app inventor入门详细教程(音乐播放器)01
  17. 开源项目SMSS开发指南(二)——基于libevent的线程池
  18. TOPSIS模型原理和MATLAB代码实现
  19. Linux 压缩/解压工具
  20. html下拉列表框怎么添加数据,给html下拉框控件自动添加数据

热门文章

  1. Linux编程(11)_信号
  2. Nginx源码阅读笔记-内存池的设计
  3. IPerf——网络测试工具介绍与源码解析(3)
  4. Javascript 给页面元素添加事件函数探讨
  5. python搭建环境教程_python教程(一)·python环境搭建
  6. css img 适配尺寸_img图片自适应布局_HTML5教程_郭隆邦技术博客
  7. 新浪sea增加php,php接口 连接新浪云sea的mysql数据库
  8. MySQL中的联合索引
  9. 把ct图像像素值转化为_CT爱好者的点点滴滴
  10. for循环十万条数据内存溢出_强如 Disruptor 也发生内存溢出?