Angular如何跨应用程序共享界面

时间:2017-07-13 08:24:40

标签: angular typescript

所以我有一个看起来像这样的interfaces.ts文件:

export interface Auction{ $key?:string; $auctioneer:string;  ... }
export interface Item{ $key?:string; condition?:string; description?:string; ...}
export interface Bid{  $key?:string;  amount:number;  auction:string; ...}
and so on  ...

现在我可以通过调用:

在每个组件/服务中导入这些接口
import { Auction,Item,Bid } from './interfaces';

但是如何导入 interfaces.ts 文件以便所有界面全局可用?

2 个答案:

答案 0 :(得分:0)

您将必须在要使用这些接口的每个组件/服务中导入interfaces.ts。

您可以做的最接近的事情(也许可以节省一些文字):

    import * as foo from './interfaces';

    var item: foo.Item;
    var auction: foo.Auction;
    var bid: foo.Bid;

如果不导入interfaces.ts,则根本找不到接口的名称。

答案 1 :(得分:0)

在您的应用模块中添加它,其中InterfaceOne和InterfaceTwo将是您的界面。不利的一面是,您拥有更多的界面,您的应用程序模块将变得更大。最好将接口放在单独的文件中并以相同的方式完成。我不知道该怎么做。

declare global {

   export interface InterfaceOne {},
   export interface InterfaceTwo {},
   //more interfaces

}