日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

什么是 SAP Spartacus 里的 module augmentation

發布時間:2023/12/19 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 什么是 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的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。