Я нахожу, что меня путают параметры target и lib и то, как они взаимодействуют с функциями, поддерживаемыми в исходном коде. Я чувствую, что документы нуждаются в улучшении немного, поэтому я спрашиваю здесь, прежде чем поднимать проблему.
Я наивно полагал, что target указывает версию JS, которую должен выполнять выходной код (с добавлением загрузчика модуля). Таким образом, мы всегда можем использовать все расширенные функции JS (например, распространение объектов), которые TS поддерживает в нашем источнике, и компилятор генерирует подходящий код для заданного вами объекта. Я предполагаю, что у него были полисы и т.д., И код просто запускался на целевой виртуальной машине.
Однако документы docs для параметра lib указывают, что libs по умолчанию зависит от цели. Но, libs влияют на то, какие типы источников доступны, и поэтому влияют на то, какой код мы можем использовать. Таким образом, возможности источника, которые мы можем использовать, зависят от цели. Это не так, как я ожидал. Я должен сказать, что мое понимание lib заключается в том, что они являются типизациями с другим API, хотя документы действительно не говорят, что они собой представляют.
Я вижу, что здесь есть некоторые языковые функции, которые не зависят от типов и других. Однако неясно, является ли эта часть причины этой ситуации.
Кто-нибудь может прояснить это?
Вторичный вопрос: почему есть ES6 и ES2015 lib, когда они обычно документируются как одно и то же.
спасибо