Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Use specific TypeScript compiler version in Visual Studio

I wonder if there's a way to set specific TypeScript compiler version for project in Visual Studio. So I could configure a project to always use version 1.0, even if new versions would be released.

I know it was not possible before and I wonder if things changes after TypeScript matured to 1.0 version.

I noticed that now Visual Studio creates <TypeScriptToolsVersion>0.9</TypeScriptToolsVersion> property in a project file, but couldn't find any documentation about it.

like image 436
Alexander Puchkov Avatar asked Apr 23 '14 13:04

Alexander Puchkov


People also ask

How do I specify TypeScript version?

Tip: To get a specific TypeScript version, specify @version during npm install. For example, for TypeScript 3.6. 0, you would use npm install --save-dev [email protected] . To preview the next version of TypeScript, run npm install --save-dev typescript@next .


3 Answers

If you try to compile a project with <TypeScriptToolsVersion>0.9</TypeScriptToolsVersion> using TypeScript version 1.0 you'll get the following error:

Your project file uses a different version of the TypeScript compiler and tools than is currently installed on this machine. No compiler was found at C:\Program Files (x86)\Microsoft SDKs\TypeScript\0.9\tsc.exe. You may be able to fix this problem by changing the element in your project file.

So it's preventing you from compiling with newer version. It does not however put the compiler into some 0.9 compatibility mode.

But if you have TypeScript 0.9 installed, it will compile against that version. So yes, you can force a specific version of the TypeScript compiler using the attribute.

Basically what the <TypeScriptToolsVersion> do is that it changes the path to the compiler:

C:\Program Files (x86)\Microsoft SDKs\TypeScript\<TypeScriptToolsVersion>\tsc.exe 
like image 148
Kristoffer Lindvall Avatar answered Oct 16 '22 09:10

Kristoffer Lindvall


I have solved it by adding $(TypeScriptToolsVersion)\ after TypeScript\ in the condition statement.

<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\TypeScript\Microsoft.TypeScript.targets"
Condition="Exists('$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\TypeScript\$(TypeScriptToolsVersion)\Microsoft.TypeScript.targets')" />
like image 40
Oğuzhan Soykan Avatar answered Oct 16 '22 09:10

Oğuzhan Soykan


Visual Studio Version -> VS2013

  1. Install Typescript 1.8 -> https://visualstudiogallery.msdn.microsoft.com/9d0e9172-244a-4943-94e5-bd24dffd9536
  2. Open the folder location of your project e.g. Right click on your project > Open Folder in File Explorer
  3. Find and open the project file via text editor e.g. WebApplication1.csproj
  4. Find the "TypeScriptToolsVersion" tag under the "PropertyGroup" element and use 1.8. Like so,
  <PropertyGroup>
  ......
    <IISExpressUseClassicPipelineMode />
    <TypeScriptToolsVersion>1.8</TypeScriptToolsVersion>
  </PropertyGroup>
like image 32
Kent Aguilar Avatar answered Oct 16 '22 10:10

Kent Aguilar