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

如何在Spartacus中扩展LoaderState接口?

解决Spartacus中LoaderState接口扩展问题

要修改LoaderState接口的error属性类型,你需要注意两个关键点:该接口是泛型接口,且确实属于StateUtils命名空间。以下是正确的扩展方式:

正确的扩展代码

// 先确保自定义类型MyError已定义
type MyError = {
  message: string;
  code?: number;
  // 自定义其他字段
};

declare module '@spartacus/core' {
  namespace StateUtils {
    interface LoaderState<T> {
      // 重写error属性类型
      error?: MyError;
    }
  }
}

关键说明

  • 必须在StateUtils命名空间内扩展LoaderState,因为原接口是通过该命名空间导出的
  • 要保留泛型<T>,与原接口的定义保持一致,否则扩展会不匹配
  • 确保这段代码放在TypeScript能识别的文件中(比如单独的types.d.ts,或者项目的全局类型声明文件)

验证方式

在使用LoaderState的地方,尝试访问error属性,此时TypeScript应该会将其识别为MyError类型而非boolean。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 22:32:02