用多个通用参数扩展TypeScript类

时间:2018-10-11 16:24:53

标签: javascript typescript react-redux typescript-generics

我尝试使用通用参数扩展React Component类,但是我无法使其正常运行。根据TypeScript文档和这个TypeScript Class Generic Parameter Constraints,以及这个extending a class with a generic T,我最终得到了以下(无效)代码:

基本类别:

class BaseView<P, S> extends React.Component<P, S> {
    public constructor(props: P, state: S) {
        super(props, state);
    }
}

const mapStateToProps = store => {
    console.log('store', store);
    return {
        store
    };
};

function mapDispatchToProps(dispatch) {
    console.log('dispatch', dispatch);
    return {
    };
}

export default connect(mapStateToProps, mapDispatchToProps)((BaseView as any));

export function subclass<P, S>(c): BaseView<P, S> {
    return c;
}

扩展基本类的类

我尝试了不同的方法,像这样使用工厂:

export class Documents extends subclass(BaseView)<DocumentsProperties, DocumentsState> { 
// this leads into ""BaseView<{}, {}>" is no constructor function type

或不使用工厂:

export class Documents extends BaseView<DocumentsProperties, DocumentsState> { 
// no base constructor has the specified number of type arguments

我也尝试了其他几种方法,但是我觉得这是我生命中的第一次编程。...我无法让它针对多个参数运行。我在这里想念什么?

问候梅塞比尔

0 个答案:

没有答案