Typescript 2.1 React找不到模块。

时间:2016-08-12 18:36:52

标签: reactjs typescript

我正在创建一个简单的React / express应用程序,我遇到了Typescript编译器和我的组件的问题 container.jsx

import * as React from "react";

export default class Container extends React.Component{
  getInitialState(){
    return {
      state: ""
    }
  }

  render(){
    return (
      <div>hello world</div>
    )
  }
}

server.ts

import * as express from "express";
import Container from "../components/container";
import * as ReactDOM from "react-dom";
let app = express();
app.get("/",(req, res)=>{
  ReactDOM.render(<Container/>,document.getElementById("app"));
});


app.listen(9999,()=>{

});

VS代码突出显示app.get中的回调,并说Argument of type 'Container' is not assignable to parameter of type 'Component<any, any>'. Property 'setState' is missing in type 'Container'.

当我运行编译器时,我得到关于正则表达式的错误。 我正在使用Typescript 2.1,昨晚的版本。

1 个答案:

答案 0 :(得分:1)

在您的server.ts中,ReactDOM.render(...)方法转换为:

ReactDOM.render(React.createElement(Container, null), document.getElementById("app"));

请注意,React.createElement(...)方法取代<Container />是如何替代的。因此,您必须在server.ts文件中import * as React from 'react'以满足已转换的React变量,该变量应满足类型不匹配。