Sto cercando di creare un flusso di lavoro, in cui posso scrivere moduli React utilizzando TypeScript e la compilazione automatica su JavaScript tramite Gulp.js. Sto usando TypeScript 1.6.2, gulp-react e gulp-typescript.TypeScript, React e Gulp.js - definizione della reazione
Il mio file .tsx
assomiglia a questo ora:
/// <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'));
Il mio problema è questa linea: import React = __React;
Quando esco fuori, ottengo l'errore
errore TS2304: Impossibile trova il nome 'React'.
durante la compilazione di .tsx
a .js
(ma ancora compila su JSX e posso usare l'output). Quando lo metto in, posso compilare senza errori, ma quando provo a usare il file all'interno del browser, ottengo uno Uncaught ReferenceError: __React is not defined
, ovviamente.
Ecco come il mio gulptask assomiglia:
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'));
});
Esiste una soluzione per questo? O mi sto perdendo qualcosa qui?
C'è qualche soluzione simile usando 'typings' invece di' tsd'? – jpierson