如何使用TypeScript / Angular2将一个类导入另一个类

时间:2017-02-06 13:09:18

标签: angular typescript

我有两个类需要两者之间的链接。如何从单独的文件将一个类导入另一个类,而不是必须重新声明链接类中的每个类。

这是我的一个班级:

export class Box {
    Id?: number;
    Serial: string;
    PackDateTime: string;
    BatchNumber: string;
    Quantity: number;
    UserId: number;

    User: User; // This class is undefined as it cannot see the user class which is in a different file. 
}

我的另一堂课:

export class User {
    Id?: number;
    Name: string;
    Surname: string;
    Username: string;
    Password?: string;
    IsAdmin?: boolean;

    Boxes: Box[]; // Also needs a link to the Box class.
}

我尝试导入类但是没有用。

2 个答案:

答案 0 :(得分:0)

您的问题似乎是您有User需要Box的循环依赖关系,但它需要User
你不能这样做。

如果两个类都需要另一个,那么你需要将它们放在一个文件中。

修改

另一个选择是在一个文件中有一个接口:

interface IBox {
    Id?: number;
    Serial: string;
    PackDateTime: string;
    BatchNumber: string;
    Quantity: number;
    UserId: number;

    User: User;
}

export class User {
    Id?: number;
    Name: string;
    Surname: string;
    Username: string;
    Password?: string;
    IsAdmin?: boolean;

    Boxes: IBox[]; // Also needs a link to the Box class.
}

然后将实际的实例从框传递给用户实例。

答案 1 :(得分:0)

对于仍在寻找此答案的人来说,这对我有用:

import { Arm } from './member.class'; // Arm class is in the same folder as BodyClass
import { Leg } from './card.class'; // Leg class is in the same folder as BodyClass

export class Body {
    Id: number;
    Name: string
    LegId: number;
    ArmId: number;

    Leg: Leg;
    Arm: Arm;
}