Разница в свойстве 'lib' в tsconfig.json между es6 и es2017?

Я исследовал, каковы возможные значения lib свойство означает в compilerOptions найдено в пределах tsconfig.json файл. Я нашел на странице Typescript GitHub соответствующую d.ts файлы, соответствующие этим значениям и, по-видимому, с помощью ES2017 включены следующие функции ES:

/// <reference path="lib.es2016.d.ts" />
/// <reference path="lib.es2017.object.d.ts" />
/// <reference path="lib.es2017.sharedmemory.d.ts" />
/// <reference path="lib.es2017.string.d.ts" />
/// <reference path="lib.es2015.d.ts" />
/// <reference path="lib.es2016.array.include.d.ts" />
/// <reference path="lib.es2015.core.d.ts" />
/// <reference path="lib.es2015.collection.d.ts" />
/// <reference path="lib.es2015.generator.d.ts" />
/// <reference path="lib.es2015.iterable.d.ts" />
/// <reference path="lib.es2015.promise.d.ts" />
/// <reference path="lib.es2015.proxy.d.ts" />
/// <reference path="lib.es2015.reflect.d.ts" />
/// <reference path="lib.es2015.symbol.d.ts" />
/// <reference path="lib.es2015.symbol.wellknown.d.ts" />
/// <reference path="lib.es5.d.ts" />

Но, по-видимому, ES6 не включен и имеет свой собственный файл, который ни на что не ссылается. Мой вопрос, если кто-нибудь знает, безопасно ли предположить, что с помощью es2017 Я покрываю все es6 функциональность (с точки зрения типирования) или должны быть включены отдельно в lib вариант?

Например, вот так:

{
  ...
  "compilerOptions": {
    ...
    "lib": ["es2017", "dom"]
  },
  ...
  }
}

Или это:

{
  ...
  "compilerOptions": {
    ...
    "lib": ["es2017", "es6", "dom"]
  },
  ...
  }
}

1 ответ

Решение

После некоторого копания и сравнения lib папку на Typescript GitHub я обнаружил, что с помощью es6 в lib недвижимость в compilerOptions соответствует коду, найденному в этих ссылках:

/// <reference path="lib.es2015.core.d.ts" />
/// <reference path="lib.es2015.collection.d.ts" />
/// <reference path="lib.es2015.generator.d.ts" />
/// <reference path="lib.es2015.iterable.d.ts" />
/// <reference path="lib.es2015.promise.d.ts" />
/// <reference path="lib.es2015.proxy.d.ts" />
/// <reference path="lib.es2015.reflect.d.ts" />
/// <reference path="lib.es2015.symbol.d.ts" />
/// <reference path="lib.es2015.symbol.wellknown.d.ts" />
/// <reference path="lib.es5.d.ts" />
/// <reference path="lib.dom.d.ts" />
/// <reference path="lib.scripthost.d.ts.d.ts" />
/// <reference path="lib.dom.iterable.d.ts" />

так, чтобы ответить на мой вопрос, чтобы правильно охватить все содержимое es6 с es2017 этот раздел tsconfig.json должен выглядеть так:

{
  ...
  "compilerOptions": {
    ...
    "lib": ["es2017", "dom", "dom.iterable", "scripthost"]
  },
  ...
  }
}
Другие вопросы по тегам