React.createElement问题:TS2322类型T不能分配给类型ReactElement< {}>

时间:2017-07-23 08:22:57

标签: javascript reactjs typescript

我的代码目前正在创建一个用于测试的React元素,如此

let titleElement : ReactElement<{}> = React.createElement(Title);
const component = shallow(titleElement);
const text = component.text();
expect(text).toBe("test");

标题元素看起来像这样

import * as React from "react";
import {Component, ReactElement} from "react";

export class Title extends Component<{}, {}> {     
  public render() : ReactElement<any> {
    return <p>test</p>;
  }     
}

我收到不推荐使用React.createClass的警告,因此我想转而计划JavaScript类。因此我试过

let titleElement: ReactElement<{}> = new Title();
const component = shallow(titleElement);
const text = component.text();
expect(text).toBe("test");

但是运行tsc然后产生

TS2322: Type 'Title' is not assignable to type 'ReactElement<{}>'.
Property 'type' is missing in type 'Title'.

为什么?

1 个答案:

答案 0 :(得分:0)

这根本不是问题,因为警告是无关的。因此,解决方案是不要尝试做我做的事情:)

谢谢@jontro!