Как правильно организовать экспорт/импорт деклараций внутри проекта?
Я типизирую небольшой фреймворк, написанный поверх Fastify и почти сразу столкнулся с необходимостью как-то организовать декларации наиболее общих типов. Например: type HttpStatus = 200 | ...etc
Во многих проектах подобные типы выносятся в utils.d.ts. Я пока поступил так же и просто импортирую общие типы: import { HttpStatus } from './types/utils';
Но это жуткий костыль и я понимаю, что нужно как-то настраивать общую область видимости. Например, через package.json. Как сделать, чтобы импорт типов не зависел бы от расположения файлов деклараций и выглядел бы примерно так:
WbICHA, я похоже понял, в чем моя ошибка: в использовании import. TS переводит файл в модульный режим и его приходится импортировать. Но если объявить тип без использования экспорта, то включается "скриптовый режим" и все декларации оказываются в общей области видимости. Соответственно, декларации из таких файлов не нужно импортировать. То есть мне нужно разобраться с областью видимости и declare (в том числе declare module и declare namespace)