文件“app / hero.ts”不是在控制台中的模块错误,在哪里存储接口文件在目录结构与angular2?
我正在做这个地址的angular2
教程: https : angular2
我已经把hero
界面放在app
文件夹下的单个文件,在控制台我有这个错误:
app/app.component.ts(2,20): error TS2306: File 'app/hero.ts' is not a module. [0] app/hero-detail.component.ts(2,20): error TS2306: File 'app/hero.ts' is not a module.
如果我把我的接口文件放在一个英雄文件夹的错误消失, 这是没有在文档中提到,我的导入有什么问题 ?
在app.components.ts
和hero-detail.component.ts
我的导入指令(以组件文件hero-detail.component.ts
:
import {Component} from 'angular2/core'; import {Hero} from './hero';
我必须用 import {Hero} from './';
replace我的导入指令: import {Hero} from './';
或者只是把代码放在一个英雄文件夹 ?
谢谢你的回答。
尝试重新启动编写代码(VS代码或Sublime)的编辑器。 编译并再次运行。 我做了同样的工作
当你在你的编辑器外面添加一个新的类或者继续运行你的angular色cli'ng serve'的时候,会发生这种情况。 其实你的编辑器或“ng服务”无法find新创build的文件。
我在同一个教程中得到了同样的错误,因为我忘记了接口的export关键字。
可能你忘了在类定义中添加“导出”。
– >
export class Hero { id: number; name: string; }
另外,尝试
export {Hero}
在你的hero.ts类的底部,最后,检查大写字母文件名和类名。
重新启动我的ng serve
过程为我工作
本教程将所有组件和接口文件放在同一目录中,因此如果您想将其移动到其他地方,则需要相对导入'./hero'
。
编辑:代码可能仍然工作,但编译器会抱怨,因为您正试图从一个不正确的位置导入。 我只是根据你的结构改变导入。 例如:
app/ component1/ component1.ts compnent2/ component2.ts hero.ts
我只是简单的改变导入, import {Hero} from '../hero'
。
这个错误是由服务发布者自动获取新添加的文件引起的。 要解决这个问题,只需重新启动服务器。
尽pipeclosures文本编辑器或者IDE重新开放解决了这个问题,但是很多人不想重新开启项目。 要解决这个问题而不closures文本编辑器…
在服务器运行的terminal中,
- 然后按
ctrl+C
停止服务器, - 再次启动服务器:
ng serve
这应该工作。
我遇到了VSC中的相同问题。 重新启动编辑器并再次启动应用程序。 它工作正常。
我发现,我不仅需要重新启动Visual Studio Code,还需要在节点服务器进程之前重新编译。
我面临同样的问题。
我重新启动我的服务器,它工作正常。 看起来像一个错误。
我面临同样的问题,试图重新启动我的服务器,重新开放编辑器,但电脑重新启动做了魔术。
PS:我在Windows机器上遇到问题,当我将模块移动到新文件夹时发生问题。
正如我每次向我的项目添加一个新文件时所经历的,我必须停止并重新启动ng服务器。