我正在angular2
这个地址做教程:https://angular.io/docs/ts/latest/tutorial/toh-pt3.html我把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.
Run Code Online (Sandbox Code Playgroud)
如果我把我的接口文件放在一个英雄文件夹中,错误消失了,这在文档中没有提到,我的导入有什么问题?
我的导入指令(在组件文件的引导中)app.components.ts
和hero-detail.component.ts
:
import {Component} from 'angular2/core';
import {Hero} from './hero';
Run Code Online (Sandbox Code Playgroud)
我必须通过以下方式替换我的import指令:import {Hero} from './';
或者只是将代码放在一个英雄文件夹中?
谢谢你的回答.
小智 384
尝试重新启动编写代码的编辑器(VS代码或Sublime).编译并再次运行它.我也做了同样的工作.
当您从编辑器外部添加新类或继续运行角度cli'ng服务'时会发生这种情况.实际上你的编辑器或'ng serve'命令可能无法找到新创建的文件.
小智 27
可能你忘了在类定义中添加"导出".
- >
export class Hero {
id: number;
name: string;
}
Run Code Online (Sandbox Code Playgroud)
另外,试试吧
export {Hero}
Run Code Online (Sandbox Code Playgroud)
在你的hero.ts类的底部,最后检查大写字母文件名和类名.