我有以下代码:
class Test {
value: any;
getSomething() {
// doSomething doesn't exist on type Test
if (typeof this.doSomething === 'function') {
return this.doSomething(this.value);
}
}
}
class A extends Test {
doSomething(value) {
console.log(value);
}
}
const a = new A();
a.getSomething();
我希望doSomething
方法是可选的。如果子类想要实现它,则可以,但是不必这样做。如何在超类中将其声明为undefined并防止ts错误?
答案 0 :(得分:1)
您可以在Test
类上将该方法声明为可选方法
class Test {
value: any;
doSomething?(p: any): any;
getSomething() {
// doSomething doesn't exist on type Test
if (typeof this.doSomething === 'function') {
return this.doSomething(this.value);
}
}
}
class A extends Test {
doSomething(value) {
console.log(value);
}
}
const a = new A();
a.getSomething();
个人注释::您每天都在学习新知识,不知道是否有可能,但是我自己想,如果存在该语法会是什么,并且瞧瞧它能起作用。 >