// componet A
interface IPropsA {
propsForA: boolean;
}
interface IStateA {
isSleeping: boolean;
};
class A<P extends IPropsA, S extends IStateA> extends React.PureComponent<P, S> {
doStaff() {
this.setState({ isSleeping: false });
}
}
// componet B
interface IPropsB extends IPropsA {
propsForB: string;
};
interface IStateB extends IStateA{
isWorking: boolean;
};
class B extends A<bProps, bState> {
doStaff() {
this.setState({ isSleeping: false, isWorking: true });
}
}
TS компилятор показывает ошибку
Class 'A<P, S>' incorrectly extends base class 'PureComponent<P, S>'.
Types of property 'state' are incompatible.
Type 'IStateA' is not assignable to type 'Readonly<S>'.
Как правильно расширить компонент A дополнительными свойствами в IStateB, чтобы компонент B работал?
Моя цель здесь - унаследовать все, что есть у компонента A, и расширить функциональность в B.