Я пишу это, опасаясь показаться фанатиком, но считаю, что это очень распространенное заблуждение среди тех, кто не использовал семейный язык ML * (например, Elm, Reason или Haskell). Я думаю, что по крайней мере для Вяза это не так.

У меня есть сочетание клавиш, которое будет использоваться в любой сигнатуре типа, которую Элм извлек из моего кода. Видеть:

Я обычно редактирую их, чтобы больше ограничить типы, но в большинстве случаев это занимает около 5 секунд.

Кроме того, Typing позволяет автозаполнение, что избавляет меня от необходимости печатать как в Google, так и в моем коде. Подумайте об этом: в JavaScript, как часто вам нужно искать в Google документацию по библиотеке, чтобы знать, какие функции вызывать и что передавать? В Elm все, что мне нужно сделать, это ввести . и теперь я знаю каждую функцию и тип, который предоставляет модуль.

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

Elm даже позволяет вам никогда не иметь дела с типами, если вы этого не хотите, потому что он может вывести каждый тип по написанному вами коду. Очень полезно, когда вы только начинаете; хотя большинство людей добавляют их позже как форму всегда актуальной документации по входам / выходам функций.

*: действительно язык, который использует алгоритм вывода типа Хиндли-Милнера, который, похоже, является просто языками семейства ML