[英]Declare an arrow function as return in TypeScript
我想为ReactMeteorData.jsx编写一个TypeScript声明,该声明导出:
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 {
...
}
);
}
通过react-meteor-data.jsx重新打包为withTracker :
export { default as withTracker } from './ReactMeteorData.jsx';
我可以简单地将返回值声明为Function:
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);
谢谢!
您描述的类型可以这样写:
(c: React.Component) => React.Component
在部分中declare module
:
export function withTracker(func: () => {}): (c: React.Component) => React.Component;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.