Working around "Cannot use JSX unless the '--jsx' flag is provided." using the TypeScript 1.6 beta
I've been using the utterly awesome ReactJS for a few weeks now. At the same time I started using React, I also switched to using TypeScript to work with JavaScript, due to it's type safety and less verbose syntax when creating modules and classes.
While I loved both products, one problem was they didn't gel together nicely. However, this is no longer the cause with the new TypeScript 1.6 Beta!
As soon as I got it installed, I created a new tsx
file,
dropped in an example component, then saved the file. A standard
js
file was generated containing the "normal" JavaScript
version of the React component. Awesome!
Then I tried to debug the project, and was greeted with this error:
Build: Cannot use JSX unless the '--jsx' flag is provided.
In the Text Editor \ TypeScript \ Project
General section of Visual Studio's Options dialog, I
found an option for configuring the JSX emit mode, but this
didn't seem to have any effect for the tsx
file in my project.
Next, I started poking around the
%ProgramFiles(x86)%\MSBuild\Microsoft\VisualStudio\v14.0\TypeScript
folder. Inside Microsoft.TypeScript.targets
, I found the
following declaration
Armed with that information I opened my csproj
file in trusty
Notepad++, and added the following
On reloading the project in Visual Studio, I found the build now
completed without raising an error, and it was correctly
generating the vanilla js
and js.map
files.
Fantastic news, now I just need to convert my jsx
files to
tsx
files and be happy!
Update History
- 2015-09-04 - First published
- 2020-11-21 - Updated formatting
Like what you're reading? Perhaps you like to buy us a coffee?
# teoman
# Richard Moss
# Ashish