我正在尝试创建一个工作流,我可以使用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;
当我把它拿出来时,我得到了错误
error TS2304: Cannot find name ‘React’.`
在将.tsx编译为.js时(但它仍然编译为JSX,我可以使用输出).当我把它放入时,我可以编译而没有错误,但是当我尝试在浏览器中使用该文件时,我得到一个未捕获的ReferenceError:当然没有定义__React.
这就是我的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')); });
这有解决方法吗?或者我在这里遗漏了什么?