【发布时间】:2017-08-26 04:31:52
【问题描述】:
是否有推荐的方法将 TypeScript 类导入 Angular 模块,以便该模块中的每个组件或服务都继承这些定义?
核心问题是“为什么导入到模块中的类不会自动导入到该模块中的其他组件中?”
我尝试将一个类导入到模块中,如下所示:
registration.model.ts:
export class Event {
id: string;
name: string;
}
registration.module.ts:
import { Event } from './registration.model';
我也将它添加到模块中的声明中,但没有任何效果(我一发现它什么也没做,我就从声明数组中删除了它):
declarations: [
Event,
...
]
registration.service.ts:
getEvents(): Observable<Event[]> {
return this.http.get(`api/events`)
.map(response => response.json());
}
产生此错误,应用无法编译:
错误 C:/code/registration/src/app/registration/registration.service.ts (26,29):找不到名称“事件”。
如果我将导入直接添加到 registration.service.ts 中,那么错误就会消失,一切都会正确编译:
import { Event } from './registration.model';
我已验证模块中的相对路径是正确的。我可以将其更改为模块中的绝对路径,我会在服务中得到相同的错误。
后续编辑 感谢阿德里安的回应,我现在对此有了更好的理解。我还发现您可以从 TypeScript 模块中一次导入多个类,如下所示:
import * as Registration from 'app/models/registration.model';
【问题讨论】:
标签: angular typescript