11 月 17 日,微软发布 TypeScript 4.5 正式版本,本次更新,带来大幅功能更新和性能改进,包括引入 Awaited 类型和 Promise 改进,用于增强异步编程、引入 es2022 模块、支持 Import 断言等。具体更新内容如下:
在此前的版本中,要获取 Promise 的返回类型,必须使用 infer 功能,如下所示:
type Unwrap<T> = T extends PromiseLike<infer U> ? U : T;
const resultPromise = Promise.resolve(true);
// resultUnwrapType is boolean
type resultUnwrapType = Unwrap<typeof resultPromise>;
TypeScript 4.5 引入了一种新的实用程序类型: Awaited
类型,你不需要像上面的 Unwarp 那样自定义映射类型,举例如下:
type resultUnwrapType = Awaited<typeof reAvailable only under nightly releasessultPromise>;
该工具还有以下功能:
PromiseLike
更稳健Awaited<T>
,为 Promise.all
、 Promise.race
、 Promise.allSettled
和 Promise.any
增加重载下面看一些不同的用例
// type is string
type basic = Awaited<Promise<string>>;
// type is string
type recursive = Awaited<Promise<Promise<string>>>;
// type is boolean
type nonThenObj = Awaited<boolean>;
// type is string | Date
type unions = Awaited<Date | Promise<Promise<string>>>;
type FakePromise = { then: () => string };
// type is never
type fake = Awaited<FakePromise>;
Node.js 的模块基础一直是 CommonJS,随着多态应用的转变,支持 ECMAScript 模块的要求也越来越高。过去几年时间里,Node.js 一直在努力支持运行 ECMAScript 模块。从 Node.js 12 版本开始,对 ES 模块的支持就很广泛了。
import/export
语句语法nodenext
一起使用import fade from ./utils.js
require
在 ES 模块上不起作用import/export
语法目前该功能仅在 TypeScript Nightly 版本中可用。
为了确保 TypeScript 和 JavaScript 能够开箱即用,TypeScript 捆绑了一系列声明文件(.d .ts 文件)。这些声明文件表示 JavaScript 语言中可用的 API 和标准的浏览器 DOM API。虽然根据文件目标有一些合理的默认值,但你可以通过在 tsconfig.json 中配置 lib 设置,来挑选程序使用哪些声明文件。
TypeScript 4.5 引入了一种覆盖特定内置库的方法,类似于 @types/support 的工作方式。在决定 TypeScript 应该包含哪些 lib 文件时,它首先会在 node_modules
中寻找一个有作用域的 @typescript/lib-* 包。例如,当在 lib 中包含 dom 选项时,TypeScript 会使用 node_modules/@typescript/lib-dom
中的类型。
然后可以安装一个特定的包来接管给定的库。例如,现在 TypeScript 在 @types/web 上发布 DOM API 版本。如果你想锁定你的项目到一个特定版本的 DOM API,可以添加这个到你的 package.json:
{
"dependencies": {
"@typescript/lib-dom": "npm:@types/web"
}
}
从 TypeScript 4.5 开始,依赖管理器的锁文件(lockfile)会确保使用的 DOM 类型的版本完全相同。
realpathSync.native
函数, 减少项目加载时间(Windows 少了 5-13%)。any
来代替未解析的类型)参考链接:
https://devblogs.microsoft.com/typescript/announcing-typescript-4-5/
领取专属 10元无门槛券
私享最新 技术干货