如果TypeScript中有两个具有父/子关系的类,则需要在子类上写出重写方法的类型:
class Parent {
method(a: string, b: string): string {
return a + b;
}
}
class Child extends Parent {
method(a: string, b: string) {
return 'child ' + a + b;
}
}
如果类型不匹配,则错误:
class Child extends Parent {
method(a: number, b: string) {
// ~~~~~~ Property 'method' in type 'Child' is not assignable to the same property in base type 'Parent'.
return 'child ' + a + b;
}
}
如果不指定类型,则会隐式包含任何错误:
class Child extends Parent {
method(a, b) {
// ~ ~ Parameters 'a', 'b' implicitly have 'any' types.
return 'child ' + a + b;
}
}
是否可以通过TypeScript推断a
和b
的类型而不必从Parent
复制/粘贴它们?