You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在TypeScript 5.7.3项目中启用Baseline 2025新增的Promise.try

如何在TypeScript 5.7.3项目中启用Baseline 2025新增的Promise.try

我来帮你搞定这个问题~你遇到的类型错误是因为TypeScript 5.7.3的内置标准库还没同步添加Promise.try的类型定义——虽然这个特性已经被纳入Baseline 2025,但TS的类型更新节奏会比特性落地稍慢一些。下面给你几个实用的解决办法:

方案一:升级TypeScript到支持版本(最推荐)

当前TypeScript 5.8及以上的版本已经正式加入了Promise.try的类型定义,这是最省心的方案,不用改任何类型配置,直接升级TS即可:

# 升级到最新稳定版
npm install typescript@latest --save-dev

# 或者指定5.8及以上的具体版本
npm install typescript@~5.8.0 --save-dev

升级完成后,保持你tsconfig里的lib数组包含ESNext或ES2025,就能直接正常使用Promise.try,不会再出现类型报错。

方案二:临时扩展Promise类型(无需升级TS)

如果你暂时没办法升级TypeScript版本,可以通过符合标准的临时类型扩展来解决,不会破坏类型安全,也完全贴合Promise.try的规范:
在你的项目源码目录下新增一个类型声明文件,比如src/types/promise-try.d.ts,写入以下内容:

interface PromiseConstructor {
  /**
   * 调用函数并返回一个Promise:函数执行成功则resolved,抛出错误则rejected
   * @param fn 要执行的目标函数
   */
  try<T>(fn: () => T | PromiseLike<T>): Promise<T>;
}

这个定义完全遵循ES标准,等你后续升级到支持的TS版本后,直接删掉这个文件就好,不会和官方类型产生冲突。

方案三:尝试调整lib配置(仅作尝试)

你可以在tsconfig.base.json的compilerOptions.lib数组中添加"ES2025",看看TS5.7是否已经包含了基础的ES2025标准库类型:

"lib": ["ES2025", "DOM", "ESNext", "ES2024.Promise"]

不过需要注意,TypeScript 5.7大概率还没完整实现ES2025的标准库,这个方案不一定能生效,但值得一试。

另外补充一下:你当前配置里的ESNext在TS5.7版本中,还没有把Promise.try纳入其中,所以仅靠ESNext是无法获取到类型定义的哦。

备注:内容来源于stack exchange,提问作者Jose A

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.14 09:44:27