TypeScript 4.0 发布
喜欢就关注我们吧!
整体看来,此版本在兼容性方面没有特别大的变化。因为 TypeScript 团队表示新版本继续使用与过去版本相似的版本控制模型,可将 4.0 视作 3.9 的延续升级版本。
而且他们也一直在追求不牺牲主要灵活性的情况下,提供一个最大限度减少 breaking changes 的升级路径。
4.0 版本的主要更新内容如下:
可变参数元组类型
标记的元组元素
构造函数的类属性推断
短路分配运算符
catch
子句中的unknown
定制 JSX 工厂
带
--noEmitOnError
参数build
模式下的速度提升--incremental
with--noEmit
编辑器改进
转换为可选链接
支持
/** @deprecated */
启动时的部分编辑模式
更智能的自动导入
Breaking Changes
构造函数的类属性推断
当 noImplicitAny 被启用时,TypeScript 4.0 现在可以使用控制流分(control flow analysis)析来确定类中的属性类型。
class Square {// Previously: implicit any!// Now: inferred to `number`!area;sideLength;constructor(sideLength: number) {this.sideLength = sideLength;this.area = sideLength ** 2;}
}
如果并非将构造函数的所有路径都分配给实例成员,则该属性可能被视为undefined
。
class Square {sideLength;constructor(sideLength: number) {if (Math.random()) {this.sideLength = sideLength;}}get area() {return this.sideLength ** 2;// ~~~~~~~~~~~~~~~// error! Object is possibly 'undefined'.}
}
在更清楚的情况下(例如具有某种initialize
方法),如果位于strictPropertyInitialization
中,可能会需要显式类型注释以及定值赋值断言(!
)
class Square {// definite assignment assertion// vsideLength!: number;// ^^^^^^^^// type annotationconstructor(sideLength: number) {this.initialize(sideLength)}initialize(sideLength: number) {this.sideLength = sideLength;}get area() {return this.sideLength ** 2;}
}
短路分配运算符
JavaScript 和其他很多语言都支持复合赋值运算符。复合赋值运算符将一个运算符应用到两个参数上,然后将结果赋值到左边。如下:
/ Addition
// a = a + b
a += b;// Subtraction
// a = a - b
a -= b;// Multiplication
// a = a * b
a *= b;// Division
// a = a / b
a /= b;// Exponentiation
// a = a ** b
a **= b;// Left Bit Shift
// a = a << b
a <<= b;
JavaScript 中的许多运算符都有一个对应的赋值运算符,但有三个例外:逻辑和(&&
)、逻辑或(||
),以及空值合并(??
)。
TypeScript 4.0 为上述三个运算符增加了对应的赋值运算符支持:
let values: string[];// Before
(values ?? (values = [])).push("hello");// After
(values ??= []).push("hello");
a ||= b;// actually equivalent toa || (a = b);
▼ 往期精彩回顾 ▼
被盯上了?美国知名媒体 TechCrunch 关注中国建设独立开源平台 Gitee
以假乱真?加州伯克利分校的学生用 GPT-3 生成伪文章成功骗得 26000 访问
2019 年 Dota2 比赛中,AI 战胜世界冠军的最强算法在这里!
开源≠免费!GNU 对自由软件的定义:与免费无关
Flink-分布式的冯诺伊曼机器
觉得不错,请点个在看呀
TypeScript 4.0 发布相关推荐
- 国内首个 App SDK 国家标准成功立项;苹果意外泄露iPhone 12发布时间;TypeScript 4.0 发布| 极客头条
「极客头条」-- 技术人员的新闻圈! CSDN 的读者朋友们早上好哇,「极客头条」来啦,快来看今天都有哪些值得我们技术人关注的重要新闻吧. 国内要闻 国内首个 App SDK 国家标准成功立项,华为. ...
- 苹果意外泄露iPhone 12发布时间;阿里将停止印度部分服务;TypeScript 4.0 发布| 极客头条...
整理 | 屠敏 头图 | CSDN 下载自东方 IC 快来收听极客头条音频版吧,智能播报由出门问问「魔音工坊」提供技术支持. 「极客头条」-- 技术人员的新闻圈! CSDN 的读者朋友们早上好哇,「极 ...
- TypeScript 2.0 正式发布
9 月 22 日,TypeScript 2.0 正式发布了. TypeScript 是微软开发的开源的编程语言,主要负责人是 C# 之父 Anders Hejlsberg. TypeScript 成功 ...
- TypeScript 2.0 已发布
微软最近发布了TypeScript 2.0,该版本提供了简化的声明文件获取.Non-nullable类型,以及Readonly修饰符. TypeScript项目经理Daniel Rosenwasser ...
- 〔译〕TypeScript 2.0 候选版发布
相关链接 TypeScript 2.0 正式版已经发布了:[译]TypeScript 2.0 正式版发布 不过可能大家更关心的是 [译]TypeScript 2.0 的新特性 原文:Announcin ...
- 微软TypeScript 3.0重磅发布!扶我起来,我还学得动
web前端教程 用大白话,来讲编程 北京时间7月31日,微软宣布推出 TypeScript 3.0 正式版.TypeScript 3.0 是一个新的里程碑. 官方表示,尽管版本号是一个大变化,但 3. ...
- 小米、QQ等8款手机浏览器发布自查整改公告;AMD宣布收购赛灵思;TypeScript 4.0.5发布|极客头条
整理 | 郑丽媛 头图 | CSDN 下载自东方 IC 「极客头条」-- 技术人员的新闻圈! CSDN 的读者朋友们早上好哇,「极客头条」来啦,快来看今天都有哪些值得我们技术人关注的重要新闻吧. 国内 ...
- 雷军:小米MIX α量产难度太大已放弃;iPhone 12系列将支持北斗导航;TypeScript 4.0 RC发布|极客头条
「极客头条」-- 技术人员的新闻圈! CSDN 的读者朋友们早上好哇,「极客头条」来啦,快来看今天都有哪些值得我们技术人关注的重要新闻吧. 国内要闻 雷军:小米MIX α量产难度太大,已放弃了 小米近 ...
- 罗永浩回应被中消协点名;传前淘宝直播运营负责人因贪污被阿里通报;TypeScript 4.0 Beta发布 | 极客头条...
整理 | 屠敏 头图 | CSDN 下载自视觉中国 快来收听极客头条音频版吧,智能播报由出门问问「魔音工坊」提供技术支持. 「极客头条」-- 技术人员的新闻圈! CSDN 的读者朋友们早上好哇,「极客 ...
最新文章
- HighGUI图像用户界面初步(滑动条、鼠标操作)
- 关于javascript的介绍
- mysql允许用户远程连接_mysql允许用户远程连接
- Python中异常处理的用法
- apply()与call()的区别
- android onSaveInstance方法项目中的实践
- SOA面向服务架构——SOA的概念
- 谈谈运维监控那些事儿
- kafka安装_kafka 安装部署教程
- python爬虫模拟登陆校园网+连接校园wifi
- MySQL数据库编程(C++)介绍
- 爬虫python创意_爬虫案例:利用python爬虫关键词批量下载高清大图
- spring配置与监听mysql_spring boot (8)mybatis配置监听,
- ZLMediaKit视频推流和播放步骤
- 还自己写代码?VBA录制宏了解下
- MacM1本地navicat无法连接本地docker的mysql。
- 七大IT业界顶尖认证证书
- dynamic linke library example (C/C++)
- python爬虫——Ajax-get
- Maven Archetype使用教程与具体使用方法