我希望在共享模块类中可以导入其他模块。像这样:
import { SomeClass } from '/path/to/shared/module'
我想避免像这样直接导入类
import { SomeClass } from '/path/to/class'
基本上,我想要从Java的包或c#的名称空间导入的东西。我只能使用共享模块中的组件,服务或指令找到 ,但没有类。我知道我可以使用桶形文件,但这似乎可以满足我的需求
答案 0 :(得分:1)
使用路径别名
文件夹结构:
src
└── shared
├── module1
│ ├── index.ts
│ └── module1.module.ts
└── module2
├── index.ts
└── module2.module.ts
src / shared / module1 / index.ts
export * from './module1.module.ts'
src / shared / module2 / index.ts
export * from './module2.module.ts'
在tsconfig.json中添加别名:
{
"compilerOptions": {
...
"paths": {
"@shared/*": ["src/app/shared/*"],
}
}
}
这就是您的使用方式:
import { Module1 } from '@shared/module1';
答案 1 :(得分:0)
与使用组件,服务,指令等的模式相同...
找出整个应用程序中所有共享类的好地方。
您的共享课程:
export class SomeClass {
...
}
您想使用共享类的任何地方:
import { SomeClass } './path/to/shared/class';
看看MDN上的一些示例:
https://developer.mozilla.org/en-US/docs/web/javascript/reference/statements/export
https://developer.mozilla.org/en-US/docs/web/javascript/reference/statements/import
但是,如果您要使此超级“角度化”,则可能要考虑使用library