一个简单的案例:
// 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'。'
不太有帮助。这里的正确方法是什么?
答案 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/
它没有编译,也许是时候升级你的打字稿编译器了?
(我之前的回答是关于联合类型,但是因为你更新了你的问题,这已经不再适用了。)