将参数与TypeScript中的类本身(此)进行比较

将参数与TypeScript中的类本身(此)进行比较,typescript,Typescript,一个简单的例子: // A common base class class A { } class B extends A { getSomething(parent?: A): number { if (!parent || parent == this) { return 42; } else { return 0; } } } 但是,这个不能像我那样使用。TS编译器的错误是:

一个简单的例子:

// A common base class
class A {
}

class B extends A {
    getSomething(parent?: A): number {
        if (!parent || parent == this) {
            return 42;
        } else {
            return 0;
        }
    }
}
但是,
这个
不能像我那样使用。TS编译器的错误是:

“运算符”==“不能应用于类型“A”和“this”。”


不是很有帮助。这里的正确方法是什么?

看起来您想知道作为参数传入的对象是否与对象本身相同

class A {}
class B extends A {
    getSomething(parent?: A): number {
        if (parent == this) {
            return 42;
        } else {
            return 0;
        }
    }
}
我刚刚在TypeScript编译器中运行了该代码:

它没有编译,也许是时候升级你的typescript编译器了


(我以前的回答是关于联合类型的,但由于你更新了你的问题,这不再相关)。

你从typescript编译器中得到的错误是什么?更新了我的问题。
B
的定义是什么?是的,这个例子并不完整,因为我只是想展示原理和我所追求的。为了更清楚,我对代码做了一些修改。您使用的typescript编译器的版本是什么?看起来它是固定的,我更新了我的答案对不起,我没有明确说明类和参数类型实际上属于同一个基类。我已经更新了我的问题。联合类型在这里是不可行的,因为这实际上是一个完整的类层次结构,这个例子就是从这个层次结构中产生的。