Tôi đang cố gắng tạo luồng công việc, nơi tôi có thể viết các mô-đun React bằng cách sử dụng TypeScript và biên dịch tự động sang JavaScript qua Gulp.js. Tôi đang sử dụng TypeScript 1.6.2, gulp-react và gulp-typescript.TypeScript, React và Gulp.js - xác định phản ứng
tập tin .tsx
tôi trông như thế này bây giờ:
/// <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'));
Vấn đề của tôi là dòng này: import React = __React;
Khi tôi rời nó ra, tôi nhận được lỗi
lỗi TS2304: Không thể tìm tên 'React'.`
khi biên dịch .tsx
thành .js
(nhưng nó vẫn biên dịch sang JSX và tôi có thể sử dụng đầu ra). Khi tôi đặt nó vào, tôi có thể biên dịch mà không có lỗi, nhưng khi tôi cố gắng sử dụng các tập tin bên trong trình duyệt, tôi nhận được một Uncaught ReferenceError: __React is not defined
, tất nhiên.
Đây là cách gulptask của tôi trông giống như:
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'));
});
Có một cách giải quyết cho việc này? Hay tôi đang thiếu thứ gì đó ở đây?
Có bất kỳ giải pháp tương tự khi sử dụng 'typings' thay vì' tsd'? – jpierson