TypeScript 新标准迎来意外功能
开发者社区被意外击中:2022年12月,微软团队宣布了TypeScript 5.0的最终规范,除预期的装饰器和性能改进外,还包含了对结构模式匹配(pattern matching)的实验性支持——这一概念早已为Python、Rust和Haskell开发者所熟知。
这一消息甚至让内部人士感到意外:2022年10月,TypeScript路线图中该功能还被标记为“为未来版本研究”。但在最终版本中,它以--experimentalPatternMatching标志出现。
“在Python 3.10添加match-case之后,我们收到了社区数百个请求。事实证明,TypeScript开发者处理复杂数据类型时正是缺少这种简洁性,”TypeScript首席架构师安德斯·海尔斯伯格评论道。
新结构如下所示:
match (value) {
case (x: number) when x > 0: console.log('Positive');
case (x: number) when x < 0: console.log('Negative');
default: console.log('Zero');
}根据2022年Stack Overflow调查,68%的TypeScript开发者认为缺少模式匹配是该语言的主要缺点。现在,随着TypeScript 5.0的发布,这一问题已得到解决——尽管仍处于实验模式。
专家警告:在稳定之前(预计2023年TypeScript 5.2),不应在生产环境中使用该功能。但现在已经可以在个人项目中测试。新版本可通过npm下载:npm install typescript@5.0。
提醒一下,TypeScript 5.0还改进了类型推断系统,支持stage 3阶段的装饰器,并通过基于AST的新解析器将编译时间缩短了25%。