У меня есть приложение NodeJS и несколько локальных пакетов (некоторые утилиты, которыми я хочу поделиться с другими приложениями браузера), все они написаны на Typescript со следующей структурой:
Пакет A (этоимеет некоторые базовые функции полезности)
Пакет B (здесь используются функции утилиты для выполнения чего-то большегосложный)
- пакет A <- со ссылкой на npm </li>
Приложение NodeJS (мне нужно использовать как основные служебные функции, так и сложные)
- пакет B <- со ссылкой npm </li>
- пакет A <- со ссылкой npm </li>
Все эти пакеты собраны в свои эквиваленты .jsно я получаю сообщение об ошибке, когда пытаюсь использовать метод из пакета A внутри моего приложения NodeJS.
Например:
Пакет A / Collections.ts:
class Collection{
count(){ ...code here }
}
Пакет B / ComplexCollections.ts:
import Collection from "project-a/Collection";
class ComplexCollection extends Collection{
}
NodeJS app / index.ts:
import ComplexCollection from "project-B/ComplexCollection";
const collection = new ComplexCollection();
colection.count() // this gives `error TS2339: Property 'count' does not exist on type 'ComplexCollection'`
Кажется, что пакетage B не предоставляет класс A Collection пакета.
Я могу исправить эту ошибку, используя непосредственно файлы .ts, но, насколько я знаю, это не очень хорошая практика согласно этого комментария
Как я могу исправить эту проблему?Или каков хороший рабочий процесс локальной разработки с такой настройкой?
Мой последний план - использовать эти пакеты в веб-приложениях, созданных с помощью Angular, реагировать, VUE или Vanilla JS (через веб-пакет)