Я пишу небольшое веб-приложение в TypeScript и связывая окончательный JS с Browserify. Весь пакет JS занимает 30 кб без указания.Использование Ramda в TypeScript без связывания внутри моего кода приложения
Теперь я хочу использовать несколько функций библиотеки Ramda. Если я установил Ramda через npm и импортировал его из своего кода приложения, полученный пакет увеличится до более чем 300 кб.
Так я загрузке Ramda как независимый сценарий из index.html
:
<script src="//cdnjs.cloudflare.com/ajax/libs/ramda/0.23.0/ramda.min.js"></script>
<script src="bundle.js"></script> <!-- My small app -->
Теперь из моего приложения кода я просто:
declare var R;
И мое приложение имеет доступ ко всем функциям Ramda из R глобальной переменной. Однако использование этого подхода имеет основное ограничение: R имеет тип any
, и нет проверки типа.
Поэтому я хотел бы сделать npm install @types/ramda
, чтобы иметь все проверки типов, но без необходимости делать npm install ramda
во избежание связывания кода Ramda в моем приложении.
Я пробовал много комбинаций import
, таких как import R from '@types/ramda'
, но я всегда получаю сообщения об ошибках на каком-то этапе.
Теперь я всегда мог просто скопировать определения типа Рамды внутри моего кода проекта ... но есть ли более чистый способ делать то, что я хочу? Короче говоря, можно ли использовать Ramda с проверкой типов, не связывая весь свой код в моем приложении? Если да, то как?
Вы пытались набирать вашу глобальную переменную 'R' так, как это' declare var R: R.Static; '? – Philipp
Да, и я получаю '[ts] Не могу найти пространство имен« R''. Я пробовал много комбинаций, таких как: 'import {} из '@ types/ramda'; declare var R: R.static; ' Невозможно сделать машинописный текст понятным, что я хочу. –
Я еще не работал с ramda, но мы обычно используем [Trippe-Slash Directive] (https://www.typescriptlang.org/docs/handbook/triple-slash-directives.html), чтобы ссылаться на правильное определение файл в файле машинописных файлов. Например: /// '. А затем определим переменную 'declare var R: R.Static;'. –
Philipp