什么是 SAP Spartacus 里的 module augmentation
在 spartacus 中,我们公开了相当多的接受配置的方法。到目前为止,我们在输入这些方法方面做得并不好。您可能会注意到,通常当我们提供配置时,我们使用类型断言(例如 provideConfig({i18n: {…}}))来提高类型安全性和自动完成功能。
在 4.0 版中,我们改变了使用 Config 的方式。由于模块增强 TS 功能,现在每个功能都对这个界面做出了贡献。由于该 Config 现在正确描述了您可以传递给 spartacus 的所有配置选项。
更改后,我们可以将所有接受配置的方法的类型从 any 更改为 Config。您不再需要使用类型断言来受益于更好的类型安全和 DX。
我们仍然保留单独的配置(例如 I18nConfig、AsmConfig、AuthConfig 等),但所有这些接口也有助于 Config 接口。
当您需要访问配置对象时,您仍然可以在构造函数中使用以下语法:protected config: AsmConfig(这只会提示您 AsmConfig 属性),但您现在可以选择使用 protected config: Config.当您想要访问具有类型安全性的完整配置(例如同时使用 FeatureConfig 和 MediaConfig)时,建议使用后者。
对于大多数用户来说,此更改应该是透明的,但如果您的应用程序中有自定义配置,则会影响您。
让我们在一个具有特殊主题配置的示例中展示它:
// existing code
@Injectable({providedIn: 'root',useExisting: Config,
})
export abstract class ThemeConfig {theme?: {dark?: boolean;};
}// required changes// You need to augment `Config` interface from `@spartacus/core` to be able to provide this config with `provideConfig` method
declare module '@spartacus/core' {interface Config extends ThemeConfig {}
}
您不需要在使用此配置的地方更改任何内容,但是在您声明自定义配置的地方,您必须指示 Typescript Config 接口也具有带有深色选项的主题属性。 如果没有它,Typescript 会抱怨您尝试传递不属于 Config 的属性。
我们仍然建议将顶级配置属性设为可选,这样您就可以在多个块中而不是在一个地方传递配置。
什么是 SAP Spartacus 里的 module augmentation相关推荐
- SAP Spartacus里的feature module
SAP Spartacus里Component的使用受featureModule控制:
- SAP Spartacus 里的 icon 设计
同 SAP Fiori 一样,SAP Spartacus 里也有大量的自定义 icon 设计,比如下图的 iconTypes.RESET: 需要调用 iconLoader 获取 RESET icon ...
- Media Query在SAP Spartacus里的用途
Media queries are useful when you want to modify your site or app depending on a device's general ty ...
- SAP Spartacus 定义在app.module.ts里的providers依赖注入元数据何时得到处理
我基于 SAP Spartacus library创建了一个自定义的Storefront实现.在其app.module.ts里,我采用自定义的MyCurrentProductService,去替换 S ...
- 如何找到 SAP Spartacus 里某个 Component TypeScript 编译后生成的 JavaScript 位置
需求 如何找到触发该网络请求的准确代码位置? 从 initiator 里查看调用栈上下文,一点头绪也没有. 找到触发该网络请求的控件的 selector:cx-register 在 Storefron ...
- SAP Spartacus 里的 .release-it.json 文件
在 SAP Spartacus package.json 里有一个依赖叫做 release-it: 这个工具的链接:https://github.com/release-it/release-it 这 ...
- SAP Spartacus 里的 cxOutletRef 指令执行过程分析
先看 cxOutletRef 指令的效果:ng-template 里定义了如下图标 1 区域所示的自定义 UI,通过 cxOutletRef, 将其插入到图标 2 所示的 ProductDetails ...
- SAP Spartacus里的localStorage用法
window-ref.ts: get nativeWindow(): Window {return typeof window !== 'undefined' ? window : undefined ...
- SAP Spartacus里product数据请求的HTTP url是在哪里维护的
我们打开SAP Spartacus home页面时,能观察到product carousel里待显示的product数据从后台被请求: 随便点开一个url,格式如下: https://jerry.ea ...
最新文章
- 冲刺周期二--站立会议01
- [LeetCode]题解(python):025-Reverse Nodes in k-Group
- CentOS 8 利用yum源安装nginx
- 使用ABAP批量下载Markdown源文件里的图片到本地
- 串口服务器常见五大问题解决方案
- figtree如何编辑进化树_进化树的注释:ggtree
- 我的内核学习笔记10:Intel GPIO驱动源码分析
- poj 2378 树型dp
- MAC下go语言的安装和配置
- BZOJ3780 : 数字统计
- 一战托福5个月112分 经验分享 + 备考资料大放送
- 5000张高清壁纸大图(手机用),用Python在法律的边缘又试探了一把
- 基金投资入门 5:基金的业务类型及交易中的费用
- OSChina 周六乱弹 ——我们能算儿童票么?
- 第一序列任小粟的能力_《第一序列》陈无敌刚烈正义,自封大圣,可任小粟做不得慈悲唐僧...
- Shopee打包贴单商品代发选星卓越货代服务系统
- 组件测试 软件,测试AUTOSAR软件组件的测试方法及系统专利_专利查询 - 天眼查
- windows性能监视器API .
- Java生成两个圆判断是否重叠,用java随机画出两个圆,判断它们是不是相交
- 瞎姬霸写之畅想互联网