我在使用不同参数的构造函数时,在Visual Studio Code中收到警告。扩展类中的参数需要和超级类一样吗?
类。
class Options {
constructor(name = null) {
this.name = name;
}
}
class ExtendedClass extends Options {
constructor(colors = null, option = false) {
if (colors!=null) {
this.numberOfColors = colors;
}
this.option = option;
}
}
UPDATE: 看起来使用不同的参数并不重要 但问题是调用super类才是问题?需要更多的测试,但看起来这就是问题所在。
class ExtendedClass extends Options {
constructor(colors = null, option = false) {
super();
if (colors!=null) {
this.numberOfColors = colors;
}
this.option = option;
}
}
扩展类[构造函数]中的参数是否需要与超级类[构造函数]相同?
简短的回答是:不需要。
然而。super()
期待与超级类构造函数相同的参数。(super()
用提供的参数调用超级类构造函数。)