Co robi opcja tsconfig „lib”?


129

Mam istniejący projekt, który ma następujący wiersz w tsconfig.json:

lib:["2016", "DOM"]

Jaki jest tego cel?

Jedyne informacje, które udało mi się znaleźć, to:

Określ plik biblioteki, który ma zostać uwzględniony w kompilacji. Wymaga języka TypeScript w wersji 2.0 lub nowszej.

Co to znaczy?


Odpowiedzi:


75

Jest to nowa funkcja maszynopisu 2, dlatego nadal nie ma dokumentacji, ale możesz o niej przeczytać w artykule Co nowego w Typescript 2.0 :

z --lib możesz określić listę wbudowanych grup deklaracji API, które możesz dołączyć do projektu. Na przykład, jeśli spodziewasz się, że Twoje środowisko wykonawcze będzie obsługiwać Map, Set i Promise (np. Większość dzisiejszych przeglądarek), po prostu dołącz --lib es2015.collection, es2015.promise. Podobnie możesz wykluczyć deklaracje, których nie chcesz umieszczać w swoim projekcie, np. DOM, jeśli pracujesz nad projektem węzła przy użyciu --lib es5, es6.

Jest też lista API groupsobsługiwanych i bardzo krótki przykład w tym linku.


25
Chodziło mi o to, że kiedy określam "lib": ["es5"], czy to po prostu oznacza, że ​​mogę używać es5typów w tsnarzekaniu kompilatora, czy też jakiś rodzaj wypełnień poly będzie dostarczony przez tsc?
— Max Koretskyi

9
Różne biblioteki można znaleźć tutaj: github.com/Microsoft/TypeScript/tree/master/lib Są to pliki definicji, których używa kompilator
— Nitzan Tomer

5
Rozumiem, dziękuję, więc w zasadzie oznacza to, że jeśli podam "lib": ["es5"]i nie podam "dom", tscto narzekam na użycie metod specyficznych dla DOM, prawda?
— Max Koretskyi

12
Pamiętaj, że dołączenie „es2015.promise” lub czegokolwiek innego nie zawiera pliku polyfill w skompilowanym kodzie. Zamiast tego po prostu powiadamiasz kompilator, że Twój kod używa obietnic i powinno to być w porządku. Jeśli chcesz dodać wypełnienia obietnicami, rozważ zaimportowanie wypełnienia polyfill w swoim kodzie lub użycie babel z odpowiednią maszyną (babel-preset-env) jako post-step (lub następny program ładujący w webpacku)
— Dmitrii Sorin

20
Grupy te składają kompilatorowi obietnicę: „proszę nie narzekać na te interfejsy API, obiecuję, że przeglądarka będzie je obsługiwać”. Np. Jeśli dodasz es6i nie uwzględnisz polyfillów , stare przeglądarki będą się dławić.
— Steve Clay
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.