我想在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和购物车页面。是否有任何规范,我需要覆盖?
1条答案
按热度按时间e4eetjau1#
请确保从其他要编译的文件中导入带有模块扩充的文件。请参阅文档:
注意:在任何模块被扩充的文件中,必须至少有一个来自模块的导入。它甚至可以是一个未使用的导入。
(资料来源:https://sap.github.io/spartacus-docs/type-augmentation/#augmenting-modules)
或者,如果您使用模块扩展将文件重命名为扩展名
.d.ts
而不是.ts
,则导入此文件的“破解”操作应该是不必要的