Working around "Cannot use JSX unless the '--jsx' flag is provided." using the TypeScript 1.6 beta
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
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
<TypeScriptBuildConfigurations Condition="'$(TypeScriptJSXEmit)' != '' and '$(TypeScriptJSXEmit)' != 'none'">$(TypeScriptBuildConfigurations) --jsx $(TypeScriptJSXEmit)</TypeScriptBuildConfigurations>
Armed with that information I opened my
csproj file in trusty Notepad++, and added the following
<PropertyGroup> <TypeScriptJSXEmit>react</TypeScriptJSXEmit> </PropertyGroup>
On reloading the project in Visual Studio, I found the build now completed without raising an error, and it was correctly generating the vanilla
Fantastic news, now I just need to convert my
jsx files to
tsx files and be happy!