Разница в свойстве '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"]
},
...
}
}