Определения типов для Elm

В TypeScript есть механизм предоставления типов библиотек с помощью DefinitelyTyped. Есть ли способ использовать библиотеки JavaScript из npm в Elm с какими-то гарантиями типов?


person Lukáš Lánský    schedule 25.10.2017    source источник


Ответы (1)


Нет, такого механизма, как DefinitelyTyped для Elm, не существует.

Есть несколько вариантов использования JavaScript из Elm: Elm порты и собственный код, первый из которых является рекомендуемым механизмом.

С портами вы, по сути, будете использовать передачу сообщений для запроса некоторых функций, реализованных в JavaScript.

С нативным кодом вы будете реализовывать привязку между Elm и JavaScript, используя для этого оба языка. Я полагаю, что это самое близкое к DefinitelyTyped. Вы можете взглянуть на существующий модуль, использующий собственный код, например Dom, чтобы чтобы получить представление о том, как это сделать. Обратите внимание, что если вы используете собственный код, сервер пакетов Elm обычно отказывается обслуживать ваш модуль.

person Emmanuel Rosa    schedule 25.10.2017
comment
В пакете Dom нет менеджеров эффектов. Вы имели в виду нативный код? Насколько мне известно, менеджеры эффектов все равно не могут общаться с JS. Также возможно, что я сам не знаю терминологии! - person Sidney; 26.10.2017
comment
Хороший вопрос. Возможно, именно у вас есть правильная терминология. - person Emmanuel Rosa; 26.10.2017
comment
Да, я полагаю, вы имеете в виду собственный код :) Менеджеры эффектов предназначены для реализации побочных эффектов; они позволяют вам выставлять команды и подписки. Некоторые менеджеры эффектов обращаются к JS, но это потому, что они также используют нативный код. - person Alex Lew; 27.10.2017