Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/368.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在TypeScript中将arrow函数声明为return_Javascript_Typescript_Meteor_Return Value_Arrow Functions - Fatal编程技术网

Javascript 在TypeScript中将arrow函数声明为return

Javascript 在TypeScript中将arrow函数声明为return,javascript,typescript,meteor,return-value,arrow-functions,Javascript,Typescript,Meteor,Return Value,Arrow Functions,我想编写一个TypeScript声明,用于导出: export default function connect(options) { let expandedOptions = options; if (typeof options === 'function') { expandedOptions = { getMeteorData: options, }; } const { getMeteorData, pure = true } = exp

我想编写一个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 {
      ...
    }
  );
}
通过以下方式将其重新打包为withTracker:

我可以简单地将返回值声明为函数:

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
import*as React from'React';
从“流星/反应流星数据”导入{withTracker};
类头扩展了React.Component{
render(){
返回“测试”;
}
}
使用跟踪器导出默认值(()=>{
返回{用户:1};
})(标题);

谢谢大家!

您描述的类型可以这样写:

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
部分声明模块

export function withTracker(func: () => {}): (c: React.Component) => React.Component;

很容易!非常感谢。