写点什么

TypeScript 4.1 发布,新增模板字面量类型

  • 2021-01-25
  • 本文字数:1137 字

    阅读完需:约 4 分钟

TypeScript 4.1发布,新增模板字面量类型

TypeScript 团队发布了TypeScript 4.1,其中包括功能强大的模板字面量类型、映射类型的键重映射以及递归条件类型。


模板字面量类型在社区中得到了非常热烈的响应。这个新特性提供了使用普通字符串字面量类型作为其他类型定义的能力,这让创建和执行模板语法变得很容易。


模板字符串字面量也可以动态生成,并根据模板字符串中的替换位置进行推断。为了进一步支持模板字符串字面量,TypeScript 还添加了新的实用类型别名来修改字母大小写:Uppercase、Lowercase、Capitalize 和 Uncapitalize。


社区提供了很多有趣的模板字符串文本示例,包括 querySelector、路由器参数解析、表达式解析、JSON 解析和序列化、GraphQL 类型的 AST、SQL 查询验证、CSS 解析、游戏、拼写检查,等等。


Haskell 和 PureScript 也有类似的特性,现在 TypeScript 也支持它们了。


TypeScript 4.1 还通过添加键重映射对映射类型进行了改进。映射类型以前仅限于带有已知建的新对象类型,现在支持创建新键或过滤已有的键。


TypeScript 4.1 的另一个重要新增功能是递归条件类型,可以更容易地支持数组或复杂 promise 树的扁平化方法。条件类型现在可以立即在分支中引用自己,从而更容易创建递归类型别名。TypeScript 团队警告说,这个模式应该谨慎使用,避免递归类型检查的速度变慢,而且如果超出了受支持的递归深度,TypeScript 编译器将会抛出编译时错误。


TypeScript 4.1 添加了一个新的编译器标志--noUncheckedIndexedAccess,用来识别潜在未定义属性。这个新特性不会自动包含在--strict 标记中,因为它在一些常见场景中会改变行为,比如遍历 for 循环的索引时。


有两个新的针对 React 17 用户的 JSX 选项,可以更好地支持生产和开发编译,分别是 react-jsx 和 react-jsxdev。


在升级到 TypeScript 4.1 时,需要考虑以下几个重大变更:


  • 内置的 lib.d.ts 自动生成 DOM 类型的行为发生了变化,并移除了 Reflect.enumerateAPI,因为 ES2016 已将其弃用。

  • 类的 abstract 成员不再被标记为 async。调用者只关心返回类型,因此不再存在将 abstract 成员指定为 async 的值。

  • any 和 unknown 类型现在会在错误的位置传播。

  • resolve 的参数现在在 promise 中是必需的。TypeScript 4.1 包含了一个快速修复,以简化升级过程。

  • 条件扩展可创建可选属性。

  • 不匹配的参数不再相关。


TypeScript 4.2 的相关工作已经在进行中,预计将于 2021 年 2 月完成。TypeScript 4.2 的内容包括广义索引签名、元组类型中的前/中剩余元素、--noImplicitOverride、--noPropertyAccessFromIndexSignature、静态索引签名、typeof class、更快的编译时迭代,以及编辑器和生产力方面的进一步改进。


TypeScript 采用了 Apache 2 开源许可,欢迎开发者通过TypeScript GitHub项目参与贡献和反馈,并遵循TypeScript贡献指南微软开源行为准则


原文链接

TypeScript 4.1 Adds Template Literal Types

2021-01-25 13:541525

评论

发布
暂无评论
发现更多内容

深圳线下报名|StarRocks on AWS:如何对实时数仓进行极速统一分析

StarRocks

数据库

架构实战营第8模块作业

Geek_53787a

融合数据库生态:利用 EventBridge 构建 CDC 应用

阿里巴巴云原生

阿里云 云原生 事件总线 CDC EventBridge

直播|StarRocks 技术内幕 :低基数全局字典优化

StarRocks

数据库

2022就业季|Spring认证教你,如何使用 Spring 构建 REST 服务(三)

Spring认证

Java spring spring认证

震撼首发!2022全网最全465页Java性能调优笔记,吃透轻松涨薪15w

了不起的程序猿

java 14 java程序员 性能调优 Java性能调优

认识中小型局域网MAC地址及分类

flow

8月月更

一文读懂Okaleido Tiger近期动态,挖掘背后价值与潜力

小哈区块

远光软件获得阿里云产品生态集成认证,携手阿里云共建新合作

阿里巴巴云原生

阿里云 云原生 合作

2022就业季|Spring认证教你,如何使用 Spring 构建 REST 服务(四)

Spring认证

Java spring

2022就业季|Spring认证教你,如何使用 Spring 构建 REST 服务(五)

Spring认证

阿里云 Serverless 异步任务处理系统在数据分析领域的应用

阿里巴巴云原生

阿里云 Serverless 数据分析 云原生

认识中小型局域网WLAN

flow

签约计划第三季

[网络]跨区域网络的通信学习路由表的工作原理

flow

签约计划第三季

2022就业季|Spring认证教你,如何使用 Spring 构建 REST 服务

Spring认证

spring Spring JPA

[网络]跨区域网络的通信学习IPv4地址的分类和计算

flow

签约计划第三季

为什么客户支持对SaaS公司很重要?

Geek_da0866

字符设备驱动结构

贾献华

7月月更

多线程与高并发—— 源码解析 AQS 原理

王小凡

Java 程序员 AQS JVM 多线程

图的连通性之普里姆算法和克鲁斯卡尔算法

乔乔

7月月更

以数字化转型为契机,3C企业如何通过SRM供应商云协同平台实现高效协同?

数商云

数字化转型 企业数字化 SRM系统

克服“看牙恐惧”,我们用技术改变行业

Lily

私有化部署的即时通讯平台,为企业移动业务安全保驾护航

WorkPlus

顿悟!百度强推的Redis天花板笔记,原来数据库是这样理解的

冉然学Java

分布式 redis' 技术专题合集 #java redis 底层原理

MQTT over QUIC:下一代物联网标准协议为消息传输场景注入新动力

EMQ映云科技

车联网 物联网 IoT mqtt 弱网

2022就业季|Spring认证教你,如何使用 Spring 构建 REST 服务(二)

Spring认证

Java spring

跨区域网络的通信学习静态路由

flow

签约计划第三季

熊市下PLATO如何通过Elephant Swap,获得溢价收益?

西柚子

云原生编程挑战赛火热开赛,51 万奖金等你来挑战!

阿里巴巴云原生

阿里云 云原生编程挑战赛

上海交大牵手淘宝成立媒体计算实验室:推动视频超分等关键技术发展

阿里巴巴大淘宝技术

音视频 音视频技术

TypeScript 4.1发布,新增模板字面量类型_前端_Dylan Schiemann_InfoQ精选文章