TypeScript 5.3 RC 发布
TypeScript 5.3 RC 版本现已发布。可以通过 NuGet 获取,或通过 npm 使用以下命令获取:
npm install -D typescript@rc
TypeScript 5.3 中的新特性包括:
- Import Attributes
- 在 Import Types 中稳定支持
resolution-mode
resolution-mode
在所有模块模式均受支持switch (true)
Narrowing- Narrowing On Comparisons to Booleans
instanceof
Narrowing ThroughSymbol.hasInstance
- 检查对实例字段的 super 属性访问
- 针对类型的交互式嵌套提示 (Interactive Inlay Hints)
- Prefer
type
Auto-Imports 的设置 - 通过跳过 JSDoc 解析进行优化
- 通过 Comparing Non-Normalized Intersections 进行优化
- 合并
tsserverlibrary.js
和typescript.js
- Breaking Changes 和 Correctness Improvements
自 Beta 版以来的新变化有:
Beta 版允许resolution-mode
跨模块分辨率设置使用,但并未对此进行记录。自 Beta 版发布以来,项目团队添加了一个选项,在可能的情况下首选type
-only auto-imports。
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业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
游戏引擎 Godot 4.1.3 发布
Godot 4.1.3 现已发布,共有 76 位贡献者提出了 128 项 pull-request(或 133 次 commits)。Godot 是一个非营利性的开源游戏引擎,由数百名贡献者利用业余时间开发,也有少数兼职或全职开发人员受雇于 Godot 社区的捐助。 v4.1.3 是Godot 4.1 的第三个维护版本,包含了许多针对渲染系统的修复,解决了所有渲染后端、光照贴图和体素全局照明系统以及 GPU 粒子中的问题。编辑器 UI 和引擎 GUI 系统中的各种问题已得到解决,输入团队改进了控制器支持并解决了 Android 平台特有的几个问题。 此外还添加了一个重要的修复程序,以改进对 Android 14 的支持,并修复了其他目标平台上的各种错误。以及纠正了一些文档错误,并且为RenderingDeviceclass 提供了新的文档。 截至目前,与之前的 Godot 4.1.x 版本没有已知的不兼容性。官方鼓励所有用户升级到 4.1.3。 立即下载 Godot 4.1.3或尝试在线版本的 Godot 编辑器。 更多详情可查看官方公告。 相关阅读: 游戏引擎项目 Godot 成立开...
- 下一篇
【店滴云】完全开放茶室棋牌室代码,不加密
开放茶室棋牌室所有代码 不加密 不加密 不加密 插件路径:addons/diandi_tea uniapp代码路径:addons/diandi_tea/uni-app 系统安装后,就可以使用,uniapp需要在hbuilder里面运行到小程序
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- SpringBoot2初体验,简单认识spring boot2并且搭建基础工程
- CentOS8编译安装MySQL8.0.19
- CentOS7,CentOS8安装Elasticsearch6.8.6
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- CentOS关闭SELinux安全模块
- Linux系统CentOS6、CentOS7手动修改IP地址
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果