Откуда lib в typecsript?

У меня есть проект typescript@2. Я хотел использовать некоторые функции ecma2017. Я узнал, что можно применить lib к compilerOptions к tsconfig.json:

"target": "es6",
"lib": [
    "es2017",
    "dom"
],

Но почему это работает? Откуда берутся эти библиотеки, какие библиотеки можно включить?

Самая близкая к документации, которую я смог найти, это это новая запись:

Асинхронные функции нижнего уровня

Эта функция поддерживалась до TypeScript 2.1, но только для ES6/ES2015. TypeScript 2.1 привносит эту возможность в среду выполнения ES3 и ES5, а это означает, что вы можете свободно использовать ее преимущества независимо от того, какую среду вы используете.

Примечание. Во-первых, нам нужно убедиться, что наша среда выполнения имеет обещание, совместимое с ECMAScript, доступное глобально. Это может включать захват полифилла для Promise или использование того, который у вас может быть в среде выполнения, на которую вы ориентируетесь. Нам также нужно убедиться, что TypeScript знает о существовании Promise, установив флаг вашей библиотеки на что-то вроде «dom», «es2015» или «dom», «es2015.promise», «es5».

но я не нашел это особенно полезным.


person k0pernikus    schedule 04.01.2017    source источник


Ответы (1)


Все значения параметров компилятора lib указаны в документации по параметрам компилятора. :

List of library files to be included in the 

Possible values are: 
► ES5 
► ES6 
► ES2015 
► ES7 
► ES2016 
► ES2017 
► ESNext 
► DOM 
► DOM.Iterable 
► WebWorker 
► ScriptHost 
► ES2015.Core 
► ES2015.Collection 
► ES2015.Generator 
► ES2015.Iterable 
► ES2015.Promise 
► ES2015.Proxy 
► ES2015.Reflect 
► ES2015.Symbol 
► ES2015.Symbol.WellKnown 
► ES2016.Array.Include 
► ES2017.object 
► ES2017.SharedMemory 
► esnext.asynciterable 

Note: If --lib is not specified a default library is injected. The default library injected is: 
► For --target ES5: DOM,ES5,ScriptHost
► For --target ES6: DOM,ES6,DOM.Iterable,ScriptHost
person HolgerJeromin    schedule 04.01.2017