Reactjs Typescript:扩展自定义父React.Component的prop接口

Reactjs Typescript:扩展自定义父React.Component的prop接口,reactjs,typescript,Reactjs,Typescript,我的Typescript/React应用程序中有一个抽象行类: export interface IAbstractRowProps { assignedValueY: IValue; valueZId?: number; matrixStore?: MatrixStore; } export abstract class AbstractRow extends React.Component<IAbstractRowProps, {}> { // .

我的Typescript/React应用程序中有一个抽象行类:

export interface IAbstractRowProps {
    assignedValueY: IValue;
    valueZId?: number;
    matrixStore?: MatrixStore;
}
export abstract class AbstractRow extends React.Component<IAbstractRowProps, {}> {
    // ...
然后我想要第二个组件从
DayRow
继承。但我还想扩展这个组件上的道具。大概是这样的:

export interface IDayFinderRowProps extends IAbstractRowProps {
    anotherProp: boolean;
}

export default class DayFinderRow<IDayFinderRowProps, {}> extends DayRow {
    protected getCellItems(): ICellItem[] {
        // ...
    }
}
导出接口IDayFinderRowProps扩展了IAbstractRowProps{
另一个属性:布尔;
}
导出默认类DayFinderRow扩展DayRow{
受保护的getCellItems():ICellItem[]{
// ...
}
}
此语法会产生错误。
我甚至可以实现这一点,或者我必须将所有可能需要的道具添加到
IAbstractRowProps
界面吗?

您需要使
DayRow
AbstractRow
本身具有泛型,以便泛型类型可以流向
React.Component
。对于
DayRow
可以指定默认类型,因此可以在不指定泛型参数的情况下实例化它

export abstract class AbstractRow<T extends IAbstractRowProps> extends React.Component<T, {}> {
}

export class DayRow<T extends IAbstractRowProps = IAbstractRowProps> extends AbstractRow<T> {

}
export class DayFinderRow extends DayRow<IDayFinderRowProps> {

}
导出抽象类AbstractRow扩展React.Component{
}
导出类DayRow扩展了AbstractRow{
}
导出类DayFinderRow扩展了DayRow{
}
export abstract class AbstractRow<T extends IAbstractRowProps> extends React.Component<T, {}> {
}

export class DayRow<T extends IAbstractRowProps = IAbstractRowProps> extends AbstractRow<T> {

}
export class DayFinderRow extends DayRow<IDayFinderRowProps> {

}