是否有将TypeScript类导入Angular模块的推荐方法,以便该模块中的每个组件或服务都继承这些定义?如何将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());
}
生成此错误和应用程序编译失败:
ERROR在 C:/代码/注册/ SRC /应用程序/注册/registration.service.ts (26,29):找不到名称'Event'。
如果我直接添加进口到registration.service.ts那么错误消失,一切编译正确:
import { Event } from './registration.model';
我已验证的相对路径是正确的模块。我可以将其更改为模块中的绝对路径,并在服务中获得相同的错误。
后续编辑 感谢阿德里安的回应,我明白现在好多了。我也发现了,你可以一次从打字稿模块导入多个类别如下:
import * as Registration from 'app/models/registration.model';
感谢您的详细回复。 – Graham