类继承/实现老是报错?
- 众所的周知,类分为继承和实现
- 在uts中目前来讲继承和实现在同一个类都能使用
ts
import Context from 'android.content.Context';
// 继承
class TestContext extends Context {}
// 实现
class TestContext implements Context {}
是继承还是实现?
- 在uts中继承可以,实现也可以
- 但是在第三方SDK或系统底层包中,如果类的方法实在太多,实现很麻烦,那就用继承!
- 当然在第三方SDK或系统底层包中,会强制要求你去不管是继承还是实现都要去覆写该方法,例如
override
是否需要完整实现?
- 如果类强制要求,则必须,反之。
怎么排查报错?
- 一般类都存在初始化也就是
constructor
,如果constructor
存在属性 - 例如
- 则需要在继承类的
TestContextB
中加上context
- 原始类
TestContextA
中testA
方法需要被TestContextB
的testA
覆写 - 一旦声明的类型出现不正确或者没有加上参数等,都会引起报错
- 则需要在继承类的
ts
import {context} from "esbuild";
class TestContextA {
constructor(context: Context) {
}
testA(context: Context) {
}
}
class TestContextB extends TestContextA {
constructor(context: Context) {
super(context);
}
override testA(context: Context) {
}
}
- 在排查过程中,一定要确保原始类的方法和参数对应上
- 在原生中可能会出现很多相同名字的类型或类
- 需要确保原始类使用的类型是哪些包下面的!