TypeScript中React.Component的继承

时间:2018-02-20 15:15:23

标签: javascript reactjs class typescript

我试图从React.Component创建一个基类,并从基类创建两个类,如下所示:

interface BaseItemProps {
    base_prop: string;
}

class BaseItem<P, T> extends React.Component<BaseItemProps, any> {
}

class ItemClass1 extends BaseItem<BaseItemProps, any> {
}


interface ItemProps extends BaseItemProps {
    item_prop: string;
}

class ItemClass2 extends BaseItem<ItemProps, any> {
}

问题是类ItemClass2没有看到this.props作为ItemProps而是作为BaseItemProps(this.props.item_prop不可用)。 我做错了什么?

1 个答案:

答案 0 :(得分:1)

您没有将属性的类型转移到React.ComponentP需要传递给React.Component,您可以使用约束来确保它扩展BaseItemProps

class BaseItem<P extends BaseItemProps, T> extends React.Component<P, any> {
}