@id100k
React developer

Как использовать типизацию только из tsconfig["lib"]?

Всем привет.
Я работаю с фреймворком Next.JS Его вебпак настроен так, что TS используется только для проверки типизации, а компилирует и транспилирует код Babel. В своём конфиге некст уже имеет полифилы babel для большинства новых функций языка, но не ES2021.
Поле "lib" в tsconfig выглядит так:
"lib": ["dom", "dom.iterable", "ES2020"]
Т.е. типы самых свежих функций языка он понимать не должен.
Но я пишу, к примеру,
[1,2,3].at(-1)
И код типизирован! Нажав на "at", я попадаю в декларацию node_modules/@types/node/global.d.ts
Посмотрев в локфайле, я увидел @types/node в зависимостях у многих библиотек, что ожидаемо. Они тянут самую свежую декларацию.
Я установил @types/node более старой (14) версии явно и всё стало работать как нужно - стало зависеть от значений, перечисленных в "lib". Можно оставить так, но "отстающая типизация" выглядит как костыль.

Получается проблема - код типизирован, билдится и работает, но работает он только в самых новых браузерах.

Вопрос: как заставить код смотреть только на декларацию в tsconfig?
  • Вопрос задан
  • 41 просмотр
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы