簡體   English   中英

React.createElement問題:TS2322類型T不可分配給類型ReactElement <{}>

[英]React.createElement issue: TS2322 Type T is not assignable to type ReactElement<{}>

我有當前正在創建一個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'.

為什么?

這根本不是問題,因為警告是無關緊要的。 所以解決方案是不要嘗試去做我做的事:)

謝謝@jontro!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM