Angular Material/Angular Flex Layout 中 public-api.ts 的用途是什么?

gol*_*kin 11 angular-material angular-flex-layout

我从angular-material和angular-flex-layout中了解到,当他们导出一个组件时,他们首先在public-api.ts中导出相关的子组件,然后在index.ts中从public-api.ts中导出所有内容(例如从'./public-api'导出*)。这是其徽章组件的示例:

// 公共 api.ts export * from './badge-module'; export * from './badge';

// index.ts export * from './public-api';

我的问题是为什么不只是将所有导出的东西都放在 index.ts 中,而是将 border 再创建一个 public-api.ts?

Ale*_*oti 7

为了保持代码更干净。

因为“索引”没有多大意义。但是“public-api”清楚地说明了那里的内容,即公共实体

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

在库中使用 public_api.ts 而不是在 index.ts 中堆积所有内容

  • **我同意你的看法**,但我最近被罗伯特·塞西尔·马丁 (Robert Cecil Martin) 的 Clean Code Book 说服了,这样写:`adulthood=18; isOfAge = checkIfIsOfAge(age); 如果(isOfAge){ 允许();} 函数 checkOfIsOfAge(age) { 返回年龄 > 成年;}` 而不是: `if (i > 18) { allow(); }` 对我来说,'index' 没有多大意义,它只是用来弃用完整路径。但是 public-api 清楚地说明了其中的内容。 (2认同)