我的代码目前正在创建一个用于测试的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'.
为什么?
答案 0 :(得分:0)
这根本不是问题,因为警告是无关的。因此,解决方案是不要尝试做我做的事情:)
谢谢@jontro!