Расширение класса TypeScript с несколькими универсальными параметрами - PullRequest
0 голосов
/ 11 октября 2018

Я пытаюсь расширить класс React Component с помощью универсальных параметров, но я не могу заставить его работать.Согласно документам TypeScript и этим ограничениям общего параметра класса TypeScript , и этому расширению класса с помощью универсального 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

Я также попробовал несколько других способов, но мне кажется, что я программировал впервые в жизни .... Я не могу запустить егодля нескольких параметров.Чего мне здесь не хватает?

привет Messerbill

...