Reactjs Typescript:扩展自定义父React.Component的prop接口
我的Typescript/React应用程序中有一个抽象行类: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, {}> { // .
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> {
}