【发布时间】:2016-01-01 03:45:03
【问题描述】:
我正在尝试创建一个工作流,我可以在其中使用 TypeScript 编写 React 模块并通过 Gulp.js 自动编译为 JavaScript。我正在使用 TypeScript 1.6.2、gulp-react 和 gulp-typescript。
我的.tsx 文件现在看起来像这样:
/// <reference path="../../../../typings/react/react.d.ts" />
import React = __React;
interface HelloWorldProps {
name: string;
}
var HelloMessage = React.createClass<HelloWorldProps, any>({
render: function() {
return <div>Hello {this.props.name}</div>;
}
});
React.render(<HelloMessage name="helloooo" />, document.getElementById('test'));
我的问题是这一行:import React = __React;
当我忽略它时,我得到了错误
错误 TS2304:找不到名称“React”。`
将.tsx 编译为.js 时(但它仍然编译为JSX,我可以使用输出)。当我把它放进去时,我可以毫无错误地编译,但是当我尝试在浏览器中使用该文件时,我得到一个Uncaught ReferenceError: __React is not defined,当然。
这就是我的 gulptask 的样子:
gulp.task('gui-tsx', function () {
var tsResult = gulp.src(config.guiSrcPath + 'tsx/app.tsx')
.pipe(ts({
jsx: 'react'
}));
return tsResult.js.pipe(gulp.dest(config.guiSrcPath + 'jsx'));
});
有解决办法吗?还是我在这里遗漏了什么?
【问题讨论】:
标签: javascript reactjs typescript gulp