文件“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.tshero-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服务器。