Я недавно возился с машинописью и строю библиотеку. На данный момент единственный способ, которым другой пакет может прочитать любой тип из моей библиотеки, - это если я экспортирую все из этой библиотеки в файл index.ts. Это связано с тем, что таким образом машинопись также будет экспортировать все печатные символы.
Однако я не хочу экспортировать каждый класс в index.ts только для экспорта типов, я хочу, чтобы пользователи могли использовать наборы, но не некоторые из классов.
Примером использования этого является абстрактный класс, который я предоставляю пользователю. Одна из функций initialize
объявлена abstract
и требует одного параметра match
типа Match
. Тем не менее, Match
- это класс с именем Match
, но я не хочу экспортировать этот класс, я просто хочу экспортировать тип, чтобы пользователи могли написать реализацию абстрактной функции initialize
и сделать
initialize(match: Match)
вместо
initialize(match: any)
, где им теперь придется использовать any
, потому что я не хочу экспортировать класс Match, но не могу экспортировать тип Match.