Всем привет)
Не так давно на работе начали переводить крупный проект на TS. У нас монорепа и все на JS, фронт, бэк и мобилка.
И соответственно есть необходимость вынести все тайпсы в корень и зависимоти в корневую node_modules, и определить глобальные типы и const enum'ы чтобы типы и интерфейсы можно было юзать глобально без import { ... } from '...'; Но чтобы этого добиться в .d.ts файлах не должно быть import'ов и export'ов иначе эти файлы будут считаться модулями и придеться везде писать import { ... } from '...'; Все типы и интерфейсы определяем через declare.
Как бы все хорошо, много типов и енумов вынес глабально, разделил по неймспейсам, все красиво. Все работает. НО когда понадобилось экстендить интерфейс из фреймворка, то тут уже возникли проблемы.
Например с Hapi.Request. В корне в node_modules/@types есть hapi.
Когда в .d.ts я пишу:
/// <reference path="../node_modules/@types/hapi/hapi.d.ts"/>
или
/// <reference types="hapi"/>
То TS все равно не позволяет исользовать интерфесы из hapi. Просто не видит. Если делать import, то мои .d.ts будут уже модулями а не заголовочными файлами и типы придеться постоянно импортить везде, чего бы хотело избежать.
Подскажите есть ли какое-то решение? Чтобы можно было экстендить интерфейсы из тайпсов фремворков без их импорта, а только как-то ссылаясь на них