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

webpack中使用ts-loader报错TS2550:PromiseConstructor不存在allSettled属性

TS2550 报错解决方案

问题根因

你当前的tsconfig配置本身符合要求,TypeScript 4.3.4原生支持es2020.Promise的类型定义,仅在webpack编译时出现报错,90%以上场景是ts-loader未正确加载到你的tsconfig配置文件导致。


解决步骤

第一步:修正webpack中ts-loader配置

手动指定tsconfig.json的绝对路径,避免ts-loader因工作目录问题找不到配置文件:

// webpack.config.js 对应规则配置
const path = require('path');

module.exports = {
  // 其余webpack配置省略
  module: {
    rules: [
      {
        test: /\.tsx?$/,
        exclude: /node_modules/,
        use: [
          {
            loader: 'ts-loader',
            options: {
              // 替换为你项目中tsconfig.json的实际绝对路径
              configFile: path.resolve(__dirname, './tsconfig.json'),
              // 可选:开启后可以在控制台看到tsconfig加载日志,排查路径问题
              logLevel: 'info'
            }
          }
        ]
      }
    ]
  }
}

配置后重启webpack编译,绝大多数场景下报错会直接消失。

第二步:兜底类型补充(可选)

如果确认配置读取正常仍有报错,可以手动补充全局类型声明:

  1. 在项目根目录新建typings.d.ts文件
  2. 写入以下类型定义:
declare interface PromiseConstructor {
  allSettled<T extends readonly unknown[] | []>(values: T): Promise<{
    -readonly [P in keyof T]: PromiseSettledResult<Awaited<T[P]>>
  }>;
  allSettled<T>(values: Iterable<T | PromiseLike<T>>): Promise<PromiseSettledResult<Awaited<T>>[]>;
}
  1. 在tsconfig.json的include字段中添加该声明文件路径:
{
  "include": ["src/**/*", "typings.d.ts"]
}

内容的提问来源于stack exchange,提问作者nadiTime

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 15:45:07