typescript SPARTACUS中类型“Product”上不存在属性“unit”

tcbh2hod  于 2023-02-17  发布在  TypeScript
关注(0)|答案(1)|浏览(114)

我想在Spartacus的产品DTO中创建一个新属性,我已经按照文档创建了一个新的TS文件,并添加了如下代码

declare module '@spartacus/core' {
  export interface Product {
    unit?: string;
  }
}

但是我不能在我的HTML中引用它。获取错误属性'unit'在类型'Product'上不存在。
对这项工作我还有什么要做的吗。
如果我按下面的方法操作,它就会工作

export interface CustomProduct extends Product {
  unit?: string;
}

但是,通过执行上述操作,我必须在代码库中从Product到CustomProduct的所有地方替换它。
这个问题发生在PDP和购物车页面。是否有任何规范,我需要覆盖?

e4eetjau

e4eetjau1#

请确保从其他要编译的文件中导入带有模块扩充的文件。请参阅文档:
注意:在任何模块被扩充的文件中,必须至少有一个来自模块的导入。它甚至可以是一个未使用的导入。
(资料来源:https://sap.github.io/spartacus-docs/type-augmentation/#augmenting-modules)
或者,如果您使用模块扩展将文件重命名为扩展名.d.ts而不是.ts,则导入此文件的“破解”操作应该是不必要的

相关问题