【发布时间】:2017-02-19 02:20:48
【问题描述】:
我正在开发一个用 TypeScript 2 编写的 angular 2 项目,我目前正面临导入机制的问题。
我项目的每个子文件夹里面都有一个“index.ts”文件,即导出该文件夹包含的类。
所以,在我的“app”目录中, 我有
- app.component.ts
- app.module.ts
- app.routes.ts
然后,一个 index.ts 文件包含:
export * from './app.component';
export * from './app.module';
export * from './app.routes';
我的问题是我无法从位于同一目录中的文件导入导出的类。
例如,在我的 app.module.ts 中,我想导入应用组件。 如果我这样做:
import { AppComponent } from './app.component';
一切正常!在编译时和运行时没有错误。生活很酷,生活很美好。
但我无法做到以下几点:
import { AppComponent } from '.'; // or './', or even './index'
IDE (Visual Studio) 实际上正确解析了导入(编译时没有错误)。我什至可以从 Intellisence 获得自动完成功能...
但我在运行时收到此错误:
Error: Unexpected value 'undefined' imported by the module 'AppModule'
我就是不知道为什么。
注意:从子文件夹的 index.ts 导入没有任何错误(例如,我可以从也有索引的 './core' 导入)。
提前谢谢你:)
【问题讨论】:
-
你能告诉你你想做什么以及什么是目录结构吗?
-
我收到了你的问题,我之前也遇到过同样的问题,但没有尝试解决,而是使用了第一种方法,使用
.\app.component.. -
@micronyks :我只想导入在 index.ts 文件中导出的类。这实际上可行,但当我尝试将它们导入位于同一目录中的脚本时却不行。 (我已经给出了我的简约目录结构)。
-
@BasheerAhmed 如果我无法解决问题,这就是我要做的 :)
-
你在使用
angular cli吗?
标签: angular typescript import dependency-resolver