在TypeScript中将参数与类本身(this)进行比较

时间:2017-01-30 20:45:47

标签: typescript

一个简单的案例:

// A common base class
class A {
}

class B extends A {
    getSomething(parent?: A): number {
        if (!parent || parent == this) {
            return 42;
        } else {
            return 0;
        }
    }
}

但是,this不能像我一样使用。 TS编译器的错误是:

  

'运营商'=='无法应用于类型'A'和'this'。'

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

1 个答案:

答案 0 :(得分:1)

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

class A {}
class B extends A {
    getSomething(parent?: A): number {
        if (parent == this) {
            return 42;
        } else {
            return 0;
        }
    }
}

我刚在TypeScript编译器操场中运行该代码:http://www.typescriptlang.org/play/

它没有编译,也许是时候升级你的打字稿编译器了?

(我之前的回答是关于联合类型,但是因为你更新了你的问题,这已经不再适用了。)