我的目录结构设置如下:
app
|- core
| |_identity
| | |_identity.service.ts
| |_ http
| |_apiClient.service.ts (service for interacting with my api)
|-user
| |- models
| | |-user.ts
| |- services
| | | - user.service.ts
| |-listComponent
|
|-tenant
|-models
| |-tenant.ts
|- services
|- tenant.service.ts
....
我的tenant.service和我的user.service都注入了我的ApiClient对象(扩展了http服务)。问题是,要引用它,我必须添加
import {ApiClient} from '../../../core/http/apiClient.service'
在我想要注入它的所有组件中。我有一个core.module定义(并导入我的app.module),并希望能够引用我的ApiClient而不必知道目录结构(即我希望能够像http服务一样导入它{ {1}}。
答案 0 :(得分:0)
这就是模块解析在Typescript中的工作原理。
TypeScript将模仿Node.js运行时解析策略 为了在编译时找到模块的定义文件
详细了解here。
您可以为常用功能创建一个Angular库,并使用package.json
进行安装,以便公共模块位于node_modules
文件夹中,就像其他库一样。那么您可以轻松使用所有导出的类型,而无需了解目录路径,如
import { ApiClient } from 'MyLib';
希望这会有所帮助!!