Я хочу написать декларацию TypeScript для ReactMeteorData.jsx , которая экспортирует:
export default function connect(options) {
let expandedOptions = options;
if (typeof options === 'function') {
expandedOptions = {
getMeteorData: options,
};
}
const { getMeteorData, pure = true } = expandedOptions;
const BaseComponent = pure ? ReactPureComponent : ReactComponent;
return (WrappedComponent) => (
class ReactMeteorDataComponent extends BaseComponent {
...
}
);
}
который перепаковывается как withTracker с помощью реагировать-метеор-data.jsx :
export { default as withTracker } from './ReactMeteorData.jsx';
Я могу просто объявить возвращаемое значение как функцию:
declare module 'meteor/react-meteor-data' {
import * as React from 'react';
export function withTracker(func: () => {}): Function;
...
}
Как я могу объявить, какие аргументы и возвращает функцию, созданную без необходимости что-либо менять в исходном пакете? Поэтому я хотел бы сделать что-то вроде:
export function withTracker(func: () => {}): (React.Component) => { React.Component };
Использование кода выглядит так:
import * as React from 'react';
import { withTracker } from 'meteor/react-meteor-data';
class Header extends React.Component<any,any> {
render() {
return "test";
}
}
export default withTracker(() => {
return { user: 1 };
})(Header);
Спасибо!