tgoop.com/super_oleg_dev/139
Last Update:
Привет!
Интересный обзор изменений в Svelte 4 в формате интервью - https://www.youtube.com/live/AOXq89h8saI
И больше всего заинтересовала часть про публичные типы Svelte, ближе к концу видео, вместе с демонстрацией.
Рич разрабатывает либу https://github.com/Rich-Harris/dts-buddy - по сути бандлер для деклараций типов, .d.ts файлов:
- склеивает один .d.ts на основе указанной точки входа
- тришейкает внутренние интерфейсы
- генерирует source-maps .d.ts.map
Какие проблемы это решает:
- уменьшается размер пакета который надо скачивать пользователю
- TS не пытается подсказать какие-то приватные или не подходящие интерфейсы
- переходя по cmd+click на определение метода, мы попадаем в исходники, а не в не очень полезный .d.ts файл!
Сам бандлинг использует конструкцию declare module "library/sub/folder"
, которая работает по сути как "exports" но для тайпчекера, позволяет объявить явно только публичное API библиотеки.
Сурсмапы для .d.ts указывают на JS исходники - но это уже вроде как связано с тем что Svelte переписывают на JS + JS Doc
В любом случае даже как-то не задумывался про такую возможность. Нагуглил флаг declarationMap - но мапа будет указывать только на TS исходники судя по всему.
Как обычно много о чем подумать после видео с участием Рича Харриса, Рич крутой.
BY SuperOleg dev notes

Share with your friend now:
tgoop.com/super_oleg_dev/139