Following the Angular2 Quickstart Guide we are instructed to include es6-shim in 2 places:
1) index.html
Typings are used by your editor to give you code hinting/intellisense, and es6-shim.min.js is a code that emulates ES6 features for ES5 browsers. Some of those features are Promise, Array.from()...
While your code is translated to ES5, you need to include es6-shim so you can use those new features in it... Consider this ES6 code:
let test1 = () => 123 + 456;
let test2 = new Promise((resolve, reject ) => {});
it will be translated to ES5 code:
var test1 = function () { return 123 + 456; };
var test2 = new Promise(function (resolve, reject) { });
but without es6-shim Promise would be undefined...