如何在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
相关产品推荐
相关产品推荐

