Angular material 什么';在角材料/角柔性布局中使用public-api.ts的原因是什么?
我从angular material和angular flex layout中了解到,当他们导出组件时,他们首先导出public-api.ts中的相关子组件,然后只导出index.ts中public-api.ts中的所有内容(例如导出*自'./public api')。以下是其徽章组件的示例: //公共api.tsAngular material 什么';在角材料/角柔性布局中使用public-api.ts的原因是什么?,angular-material,angular-flex-layout,Angular Material,Angular Flex Layout,我从angular material和angular flex layout中了解到,当他们导出组件时,他们首先导出public-api.ts中的相关子组件,然后只导出index.ts中public-api.ts中的所有内容(例如导出*自'./public api')。以下是其徽章组件的示例: //公共api.ts 从“./badge module”导出*; 从“./badge”导出*; //索引 从“/public api”导出*; 我的问题是,为什么不将所有导出内容都放在index.
从“./badge module”导出*;
从“./badge”导出*;
//索引
从“/public api”导出*;
我的问题是,为什么不将所有导出内容都放在index.ts中,而是将border放在index.ts中,以创建更多的公共api.ts?以保持代码更干净 因为“索引”并不意味着什么。但“公共api”明确了存在的内容,即公共实体 public_api.ts旨在枚举和公开特定功能以供外部使用。 index.ts是一种默认的导出机制,用于拒绝完整路径导入
乍一看,我认为有几个原因:
非常感谢,亚历克斯。但我还是不明白。将index.ts中的所有内容打包似乎也不赞成完整路径导入,并将特定功能公开给外部使用。你能提供一些具体的例子来说明这种差异吗?我同意你的观点,但罗伯特·塞西尔·马丁(Robert Cecil Martin)的《干净的代码书》最近说服了我,让我这样写:
成年=18;isOfAge=检查年龄(年龄);如果(isOfAge){allow();}函数checkOfIsOfAge(age){return age>addutulthood;}
而不是:如果(i>18){allow();}
对我来说,那么“index”并没有多大意义,它只是用来反对完整路径。但公共api明确了其中的内容。