Visual Studio + ES6

JavaScript-Programming-2014

I have been asked recently about ES6 support in Visual Studio (VS), and I haven’t had a clear answer about how much of it is supported right now (i.e., VS 2015 RC) and what works. The general feeling from those asking is that VS lags significantly in this space, so the only reasonable thing to do was test this thoroughly and share my findings with you.

Using Luke Hoban’s awesome page on ES6 features, I identified a comprehensive list to test. I then evaluated each feature in VS 2015 RC and in VS Code (our new lightweight, cross-platform, free IDE). Ultimately, Visual Studio supports 70% of ES6 features, while VS Code supports 94%. But what does "implemented" mean here? It means no errors are raised, and the IDE provides correct IntelliSense behavior. Both IDEs are actively improving, but this gives a solid baseline for discussion.

I determined support by assigning a score:

One feature, the Reflect API, wasn’t included as I don’t yet have a working example to test it. If you spot any errors in my findings, please let me know—I’ll happily update this!

FeatureVSCode
Arrows11
Classes0.511
Enhanced Object Literals11
Template Strings11
Destructuring01
Default + Rest + Spread0.521
Let + Const10.83
Iterators + For..Of11
Generators01
Unicode01
Modules01
Module Loaders0.540
Map + Set + WeakMap + WeakSet11
Proxies11
Symbols11
Subclassable Built-ins0.551
Math + Number + String + Array + Object APIs11
Binary and Octal Literals11
Promises10.96
Tail Calls11
Total70%94%

Footnotes:

  1. No IDE errors, but IntelliSense is incomplete.
  2. No IDE errors, but IntelliSense is lacking.
  3. An extra (misplaced) warning appears, though nothing breaks.
  4. No IntelliSense for loaders.
  5. IntelliSense issues persist.
  6. A seemingly buggy warning appears.