Поскольку ваш потребитель (потребитель shared-stuff
) полагается на наборы another-thing
, вам также необходимо экспортировать их.
Один из способов сделать это - использовать /// <reference>
в вашем index.ts
(и не забудьте включить ваш /lib/declarations
в ваш дистрибутив.
Другой способ - не полагаться на внешние типизации. То есть вместо выполнения:
import { SomeType } from 'another-thing'
export function foo(): SomeType { ... }
Определите этот тип самостоятельно(внутри shared-stuff
, а не в another-thing.d.ts
):
export type SomeType = { ... }
export function foo(): SomeType { ... }
Теоретически, типы в another-thing
должны следовать за семантической версией как сама библиотека, но в действительности она гораздо более склонна кпрерывание изменений.
Одна из причин заключается в том, что библиотека не была написана на языке TypeScript для начала, поэтому автор библиотеки может случайно разбить типы, даже не подозревая об этом.
Поэтому при объявлении типовВы чувствуете себя хрупким по сравнению с повторным использованием шрифтов, но на самом деле это не так (и в любом случае вы сами определяете их).
Просто убедитесь, что у вас есть хороший набор тестов, чтобы отследить любые изменения типа.