我正在创建具有以下结构的角度2应用程序:
app
|--components
| |--folder1
| |--folder2
|
|--services
| |--folder1
| |--folder2
..............
每个文件夹中都有几个文件。因此,当我将服务导入组件时,我需要使用类似这样的东西
import {SomeInfo, SomeInfoService} from './../../services/some/some-data.service';
这是导入服务的有效方式,一切正常。但路径很难看。所以我改变了路径app/services/some/some-data.service
和应用程序工作正常,但我有一个打字稿编译错误,如
app/components/some/some-detail.component.ts(3,45): error TS2307: Cannot find module 'app/services/some/some-data.service'.
有没有人知道为什么会这样?
答案 0 :(得分:0)
Typescript编译器认为'app / services / some / some-data.service'是外部模块'app'下面的路径(在node_modules中)并且不会将其视为路径
import {SomeInfo, SomeInfoService} from './../../services/some/some-data.service';
难道不是那么难看,是吗?
修改强>
您可以在(比方说)export-services.ts
中创建(比方说)services
文件,该文件将对您的服务进行分组
export * from './some/some-data.service'
export * from './other/other-data-service'
...
然后仅从该文件重新导入
import {DataService, OtherService,...} from './../../services/export-services'
显然,为了实现这一目标,您无法使用default
导出,并且所有导出的组件名称必须是唯一的
答案 1 :(得分:0)
也许你可以在这里找到一些见解:
https://github.com/Microsoft/TypeScript/issues/5039
就代码结构而言,还存在这些讨论:
Issue 5 at coding style guidelines
Issue 10 at coding style guidelines
干杯,
拉夫。
附:我会将此作为评论,但我需要50个声望点。