Я исследовал, что означают возможные значения свойства 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"]
},
...
}
}