TypeScript中的React.render,用于包含props和state的组件

时间:2015-10-24 18:49:38

标签: reactjs typescript tsx

我有一个带有React组件的TypeScript TSX文件,如下所示:

interface IHiProps {
  a: string;
  b: string;
}

interface IHiState {

}

class Hi extends __React.Component<IHiProps, IHiState> {
  // render…
}

如何在TypeScript中正确呈现此组件?

var hiComponent: __React.Component<IHiProps, IHiState>;
hiComponent = __React.render(__React.createElement(Hi), { a: "A", b: "B" }, document.body);

类型&#39;类型嗨&#39;不能分配给&#39; ComponentClass&#39; 类型的参数。我使用来自the DefinitelyTyped repository of Boris Yankov的绝对打字文件。

1 个答案:

答案 0 :(得分:2)

当你改变这样的课程时它会起作用吗?

class Hi extends __React.Component<IHiProps, IHiState> {
  static propTypes: __React.ValidationMap<any> = {
    a: __React.PropTypes.string,
    b: __React.PropTypes.string
  }

  // render…
}

同样使用__React是可疑的,因为它是React.d.ts的内部变量。在运行时,不会有这样的变量 - 如果你不创建它。考虑使用模块:

/// <reference path="/path/to/react.d.ts" />
import * as React from React;