typescript - 如何获得对象类实例?

时间:2013-06-17 17:10:45

标签: javascript inheritance typescript

我有一个类 classA 的对象,它继承自类 classB

我的问题是:我怎么知道我的对象是否继承自 classB

我试过了: classB的对象实例

但它没有用!

当我在任何ts文件中找到instanceof时 我得到了

0x800a138f - Microsoft JScript运行时错误:无法获取属性'prototype'的值:object为null或undefined

var __extends = this.__extends || function (d, b) {
    function __() { this.constructor = d; }
    __.prototype = b.prototype; //exception occurs in this line
    d.prototype = new __();
};

2 个答案:

答案 0 :(得分:5)

此错误的一个原因是,您派生的类来自文件中的派生类之后。

这(以扼杀Ryan的回答):

class B extends A {
}

class A {
}

var x = new B();
console.log(x instanceof A); // Error

...恰恰导致您在Playground中描述的错误。

我认为在codeplex上已有一个工作项,但现在已经很晚了,我还没有检查......

答案 1 :(得分:2)

这通常有效:

class A {
}

class B extends A {
}

var x = new B();
console.log(x instanceof A); // true