将Breeze.Entity分配给TypeScript定义的类

时间:2017-03-01 19:33:56

标签: typescript breeze breeze-sharp

不要过多地接受Breeze语法,但是" createEntity"正确返回一种breeze.Entity。为什么TypeScript不允许我将返回的对象分配给" instance",它是myClass类型,它实现了breeze.Entity接口?

看起来这应该可行,但我收到了错误" Type' Entity'不能分配给myClass'。财产' id'类型'实体'中缺少。

我是否完全误解了TypeScript(或一般)中的继承和/或接口?

this.instance = EntityManager.createEntity("myClass", myObj); // instance is defined as type 'myType'  

如果我将this.instance定义为' any',一切正常,但我在其他地方丢失了强类型对象。

我的课程和界面......

export class myClass extends base implements Interfaces.IMyClass, breeze.Entity {

    public id: number;
    ....

    constructor() {
        super();
    }
}

export class base implements breeze.Entity {

    constructor() { }

    public entityAspect: breeze.EntityAspect;
    public entityType: breeze.EntityType;
}

export interface IMyClass extends breeze.Entity {

    id: number;
    ...
}

1 个答案:

答案 0 :(得分:0)

我不确定是否是其他问题,或者这个,但我通过使用下面描述的“as”来实现它。

this.instance = EntityManager.createEntity(“myClass”,myObj)为MyClass;