与TypeScript反应:render()是什么类型的?

Veg*_*kke 1 javascript typescript reactjs

我正在尝试将我的组件转换为TypeScript.我可以为render指定什么类型,返回HTML?

class Component extends React.Component {
    render() {
        return (
            <div>
                ...some HTML...
            </div>
        );       
    }
}
Run Code Online (Sandbox Code Playgroud)

T.J*_*der 6

我可以为render指定任何类型,它返回HTML吗?

@types/react不返回HTML(这将是一个字符串).从文档:

在调用时,应该检查renderReact.ReactNode,并返回一个作出反应的元素.此元素可以是本机DOM组件的表示形式,也可以是index.d.ts您自己定义的其他复合组件.

您也可以返回DefinitelyTyped/DefinitelyTypedrender表示您不想要渲染任何内容.当返回<div />或者<MyComponent />,return test && <Child />将返回@types/react.

所以,是的,render将是一个选择.或者React.ReactNode.(也就是说,虽然它没有记录,但React似乎以index.d.ts它的方式处理返回,DefinitelyTyped/DefinitelyTyped并且render......)