TypeScript 5.3 Beta
TypeScript 5.3 已发布 Beta 测试版。
主要变化
-
支持 import attributes 提案的最近更新
-
switch (true)
Narrowing -
Narrowing On Comparisons to Booleans
-
检查对实例字段的
super
属性访问 -
针对类型的交互式嵌套提示 (Interactive Inlay Hints)
-
跳过 JSDoc 解析以进行优化
-
合并
tsserverlibrary.js
和typescript.js
import attributes 的一个用例是向运行时提供有关模块预期格式的信息。
// We only want this to be interpreted as JSON, // not a runnable/malicious JavaScript file with a `.json` extension. import obj from "./something.json" with { type: "json" };
TypeScript 不会检查这些属性的内容,因为它们是特定于主机的,因此不会对它们进行检查,只是让浏览器和运行时处理它们(可能会出错)。
// TypeScript is fine with this. // But your browser? Probably not. import * as foo from "./foo.js" with { type: "fluffy bunny" };
动态 import() 调用也可以通过第二个参数使用 import 属性。
const obj = await import("./something.json", { with: { type: "json" } });
第二个参数的预期类型由一个名为ImportCallOptions
的类型定义,默认情况下,该类型只期望调用一个属性with
。
请注意,导入属性是从早期的 "导入断言"(import assertions)提案演变而来的,该提案已在 TypeScript 4.5 中实现。最明显的区别是使用了with
关键字而非assert
关键字。但不太明显的区别是,运行时现在可以自由使用属性来指导导入路径的解析和解释,而导入断言只能在加载模块后断言某些特性。
随着时间的推移,TypeScript 将淘汰旧的导入断言语法,转而使用建议的导入属性语法。使用 assert 的现有代码应迁移到 with 关键字。需要导入属性的新代码应只使用with
关键字。
switch (true)
Narrowing
TypeScript 5.3 可以根据switch (true)
中每个case
子句的条件执行 narrowing。
function f(x: unknown) { switch (true) { case typeof x === "string": // 'x' is a 'string' here console.log(x.toUpperCase()); // falls through... case Array.isArray(x): // 'x' is a 'string | any[]' here. console.log(x.length); // falls through... default: // 'x' is 'unknown' here. // ... } }
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
🍃 layui-vue v2.8.0 发布,一个 Vue 3 UI 框架
更新日志: [新增] layer 组件 full 方法,必填参数为 id,用于弹出层最大化。 [优化] layer 组件 resize 启用时,拉伸选中文字的问题。 [优化] layer 组件 success 方法,加入 nextTick 优化,保证在弹层渲染后执行。 [修复] page 组件 total 属性回显数量不正确的问题。 [升级] layer-vue 2.0.4 版本。 更多详情:http://www.layui-vue.com
- 下一篇
联想计划推出 Android PC
联想于近日宣布计划生产Android PC。该公司将于Esper合作,重新设计其台式一体机 ThinkCentre M70a,“这台一体机将代表着联想进军 Android 领域的第一步”。Esper 是一家专门提供 Android 定制服务以及设备管理产品的公司。 ThinkCentre M70a 采用 21.5 英寸 FHD 无边框显示屏,现有版本采用英特尔处理器,可以从入门级 i3 一直配置到功能强大的 i9 芯片。M70a 目前采用的是 Windows 11 操作系统,但据透露新版本将采用 Android 系统。 联想方面表示,ThinkCentre M70a 主要面向企业客户,希望它能吸引零售和酒店业的企业使用。除此之外,联想还计划与 Esper 合作推出基于 Android 系统的 ThinkCentre M70q,以及基于 Windows 系统的 ThinkEdge SE30 和 ThinkCentre M90n-1 IoT。 目前在台式电脑领域最接近 Android 系统的是惠普的 Chromebase AIO 等产品,由于采用了 ChromeOS,它可以通过谷歌 Pla...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS7,8上快速安装Gitea,搭建Git服务器
- CentOS6,CentOS7官方镜像安装Oracle11G
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- Windows10,CentOS7,CentOS8安装Nodejs环境
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- Mario游戏-低调大师作品
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- SpringBoot2全家桶,快速入门学习开发网站教程
- Docker安装Oracle12C,快速搭建Oracle学习环境
- Red5直播服务器,属于Java语言的直播服务器