您现在的位置是:首页 > Javascript
当前栏目
TypeScript 4.4beat版本发布,你知道了吗?
2023-03-07 09:49:23 时间
本文转载自微信公众号「天天Up」,作者小弋 。转载本文请联系天天Up公众号。
你好,我是小弋。
前不久TS发布4.4的beat版本:
发布说明
到底4.4的版本中有哪些features,我们可以参考下面的:
链接:https://github.com/microsoft/TypeScript/issues/44237
里面大致描述4.4版本发布的流程,预计8月底发布正式版本。
主要更新内容:
- 提供针对 Aliased Conditions 的控制流分析 (Control Flow Analysis)
- 增加 symbol 类型和模板字符串模式的索引签名
- Catch 语句中默认使用 unknown 类型 (--useUnknownInCatchVariables)
- 新增 Exact Optional Property 类型 (--exactOptionalPropertyTypes)
- 针对 tsc --help 的升级和改进
- 性能改进
- 添加针对 JavaScript 的拼写建议
- 新增实验性的 Inlay 提示
- 破坏性变更
比如,我们拿出一个例子来看。
Catch 语句中默认使用 unknown 类型
经常写JavaScript都知道,任何类型的值都可以通过throw抛出后,在catch语句中捕获到,那么TypeScript中是如何做统一的呢,
其实经常写TS的都知道,很早的版本中,ts会将变量转化为any:
- try {
- // Who knows what this might throw...
- executeSomeThirdPartyCode();
- }
- catch (err) { // err: any
- console.error(err.message); // Allowed, because 'any'
- err.thisWillProbablyFail(); // Allowed, because 'any' :(
- }
但是,有时候我们知道unknown类型会是更加的选择,所以我们可以在catch语句的时候使用unknown。
ts团队为了考虑到效率,还是其他的原因,我们可以通过设置为默认值,也就是说,类似于--useUnknownInCatchVariables将默认类型切换成unknown。
比如下面代码:
- // @useUnknownInCatchVariables: true
- try {
- // ...
- }
- catch (e) {
- e.toUpperCase(); // error
- }
或者,选择一个更加广泛的标志?
这些我们期待正式版本的到来,就能知道答案了。
那么你是不是想来试一试TS4.4测试版本的功能呢,我们可以借助这个TS中的Playground来体验下:
playground
选择对应的版本即可。
至于其他的更新以及优化,比如更快的构建,会在构建上做优化,让开发体验更佳。比如lib.d.ts的修改等等
更多的信息,赶紧去看看吧:
https://github.com/microsoft/TypeScript/issues/44237
相关文章
- 鲜为人知但很有用的 HTML 属性
- 翻转再翻转!有意思的水平横向溢出滚动
- 自定义计数器小技巧!CSS 实现长按点赞累加动画
- 过五关!React高频面试题指南
- 软件开发中的十个认知偏差
- 不需要 JS!仅用 CSS 也能达到监听页面滚动的效果!
- 一文读懂TypeScript类型兼容性
- Vue 的响应式原则与双向数据绑定
- 快速掌握 TypeScript 新语法:Infer Extends
- JWT教你如何证明你是我的人!
- 一篇带给你 V8 GC 的实现
- 面试官:请使用JS完成一个LRU缓存?
- 通过可视化来学习JavaScript事件循环
- 新的跨域策略:使用 COOP、COEP 为浏览器创建更安全的环境
- 为什么有人说 vite 快,有人却说 vite 慢?
- 种草 Vue3 中几个好玩的插件和配置
- 超全面的前端工程化配置指南
- Vue 状态管理未来样子
- Volatile关键字能保证原子性么?
- 面试突击:SpringBoot 有几种读取配置文件的方法?