SAP 电商云 Spartacus UI 支持延迟加载的新功能的入口设计

SAP 电商云 Spartacus UI 支持延迟加载的新功能的入口设计

SAP 电商云 Spartacus UI 支持延迟加载的新功能的入口设计

SAP 电商云 Spartacus UI 支持延迟加载的新功能的入口设计

SAP 电商云 Spartacus UI 支持延迟加载的新功能的入口设计

SAP 电商云 Spartacus UI 支持延迟加载的新功能的入口设计

SAP 电商云 Spartacus UI 支持延迟加载的新功能的入口设计

为什么要设计这个 public_api.ts 呢?为了让语义更加清楚。这个最佳实践定义在此处。


public_api.ts 旨在枚举和公开特定功能以供外部使用。 * index.ts 旨在作为默认导出机制来弃用绝对路径导入。

更详细的讨论:


(1) 消歧:鉴于缺少“内部”修饰符和内部模块增加的复杂性,需要多个 index.ts 桶文件来提供不同的内部/外部 API 表面。


(2) Angular CLI 面向用户的工具:为了提供省力的工具默认值,需要一个公共 API 文件标准。 NG 编译器所做的不仅仅是将所有 TypeScript 构建为 JavaScript;值得注意的是,它还会根据选择的入口点进行摇树。出于其他原因, index.ts 是默认的糟糕选择。


(3) Angular 内部代码质量:public-api 是与 Angular 消费者的契约,必须严格控制,伴随着文档变化、新测试、兼容性评估和公告的变化。为此,项目设置会自动拒绝导致 public-api 更改的代码更改。


(4) 意识/清晰度/意图:我认为这通常是其他评论所暗示的。历史上,人们一直在使用 index.ts 来处理内部和外部的所有事情。当然,一个项目只能将 index.ts 用于公共 API 签名,但这并不明显。

上一篇:Android项目实战(七):Dialog主题Activity实现自定义对话框效果


下一篇:Windows 7 USB/DVD download tool 烧录U盘失败解决办法