angular – 无法从位于同一目录中的脚本解析index.ts中的导入

前端之家收集整理的这篇文章主要介绍了angular – 无法从位于同一目录中的脚本解析index.ts中的导入前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在研究用TypeScript 2编写的角度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’导入).

先感谢您 :)

我有 same issue.

你似乎有循环依赖.

当你写这个:

import { AppComponent } from '.';

解析器转到index.ts并看到:

export * from './app.component';

所以它转到./app.component并看到:

import { AppComponent } from '.';

所以它转到index.ts并看到:

export * from './app.component';

等等等等…

这有点奇怪的是,你没有得到任何警告,并且,根据加载程序,它可能实际上第二次正确解析(所以第一次你得到未定义但在后续调用它正确解析) – 我花了4个小时,因为一个远不那么明显的循环依赖.我强烈反对打字稿应该对这些事情发出警告,因为它是一种适当的蠕虫病毒.

猜你在找的Angularjs相关文章