1

我有一个带有 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);

'typeof Hi' 类型的参数无法分配给 'ComponentClass' 类型的参数,这让我失望了。我正在使用来自Boris Yankov 的DefinitelyTyped 存储库中的绝对类型文件。

4

1 回答 1

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;
于 2015-10-24T20:48:35.830 回答