我尝试构建服务库。我通常在服务文件中使用Interface。 phpStorm没有创建这个“导入”语句,它可以与ng serve
public list$: Observable<Platform.PlatformInterface[]>;
private _platform: AngularFirestoreCollection<Platform.PlatformInterface>;
constructor(db: AngularFirestore) {
this._platform = db.collection<Platform.PlatformInterface>('platforms');
this.list$ = this._platform.valueChanges();
}
这里的接口:(我只将它减少到接口的根,因为它在这篇文章中更清楚.Nomamaly有更多的接口)
declare module PlatformInterface {
export interface Root {
id: string;
name: string;
design: Design[];
saga: Saga[];
}
}
但是当我跑npm run packagr
时,我收到了这个错误:
BUILD ERROR
src/app/services/platform.service.ts(12,30): error TS2503: Cannot find namespace 'Platform'.
任何想法?我试着在public_api.ts中导入接口,但这对我没用。
答案 0 :(得分:0)
最后经过这么长时间我找到了一个适合我的解决方案。
使用使用命名空间的.ts文件顶部的triple-slash directive。例如,我的命名空间
declare module google {
export module maps {
...
}
...
}
在../../typings.d.ts
中声明(相对于引用它的文件),所以我把
/// <reference path="../../typings.d.ts" />
位于引用它的文件的顶部,以便访问google名称空间。
这是由ng-packagr创建者在GitHub问题的评论here中提出的。