TypeScript 4.4beat版本发布,你知道了吗?

开发 前端
经常写JavaScript都知道,任何类型的值都可以通过throw抛出后,在catch语句中捕获到,那么TypeScript中是如何做统一的呢,

[[413992]]

本文转载自微信公众号「天天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:

  1. try { 
  2.     // Who knows what this might throw... 
  3.     executeSomeThirdPartyCode(); 
  4. catch (err) { // err: any 
  5.     console.error(err.message); // Allowed, because 'any' 
  6.     err.thisWillProbablyFail(); // Allowed, because 'any' :( 

但是,有时候我们知道unknown类型会是更加的选择,所以我们可以在catch语句的时候使用unknown。

ts团队为了考虑到效率,还是其他的原因,我们可以通过设置为默认值,也就是说,类似于--useUnknownInCatchVariables将默认类型切换成unknown。

比如下面代码:

  1. // @useUnknownInCatchVariables: true 
  2.  
  3. try { 
  4.   // ... 
  5. catch (e) { 
  6.   e.toUpperCase(); // error 

或者,选择一个更加广泛的标志?

这些我们期待正式版本的到来,就能知道答案了。

那么你是不是想来试一试TS4.4测试版本的功能呢,我们可以借助这个TS中的Playground来体验下:

playground

选择对应的版本即可。

至于其他的更新以及优化,比如更快的构建,会在构建上做优化,让开发体验更佳。比如lib.d.ts的修改等等

更多的信息,赶紧去看看吧:

 

https://github.com/microsoft/TypeScript/issues/44237

 

责任编辑:武晓燕 来源: 天天Up
相关推荐

2024-10-31 08:36:32

2023-04-07 00:05:30

WebGPUAPIJavaScript

2022-10-31 10:03:03

2022-11-28 14:27:17

插入意向锁age

2023-10-28 09:00:03

进程系统服务

2022-02-21 09:00:08

数字签名验证

2016-09-27 19:53:25

IOS 10苹果

2018-05-20 11:01:47

Siri语音助手手机

2022-04-01 08:48:45

JavaPythonRuby

2024-10-30 08:31:36

Next.js高效性能

2023-05-26 14:07:00

数据库分布式RAC

2023-05-26 07:55:06

分布式数据库SQL

2023-11-06 07:56:04

2015-08-03 09:54:51

网页设计趋势

2024-06-26 11:29:54

2022-08-16 07:32:03

RestfulSOAPRPC

2024-04-18 10:23:35

装饰器Python

2019-06-05 15:20:00

MongoDBNoSQL数据库

2023-07-27 08:40:45

PawSQL数据库

2020-09-15 08:35:57

TypeScript JavaScript类型
点赞
收藏

51CTO技术栈公众号