С машинописью или Facebook, Flow (типом) можно статический ввести такие переменные, какКак сгенерировать проверку типов в JavaScript во время выполнения?
function add (x: integer, y: integer) { ... }
Оба машинописи и Flow поймать любой незаконный вызов, такие как add('1',0)
в время компиляции.
Однако, когда библиотека скомпилирована и экспортирована, типы исчезли. Это означает, что потребитель библиотеки, использующий эту функцию, не получает ошибок, что может потенциально привести к трудным для отладки проблемам.
Есть ли способ автоматически генерировать дополнительный код, который будет вызывать точно такие же ошибки во время выполнения?
Я могу, конечно, вручную устанавливать ограждения каждый раз, когда ожидается проверка типа, но это кажется скучным и повторяющимся.
Является ли это тестом потока на или машинописный вопрос? –
@JanDvorak Я был бы рад использовать любую или любую другую технологию, которая решает проблему. –
JS - динамически типизированный язык. Не пытайтесь сделать что-то из языка, а что нет. В противном случае вы подражаете процессу компиляции для КАЖДОГО запроса. Это безумно. Вместо этого применяйте интенсивные тесты модулей. Модульные тесты заменяют отсутствующий компилятор в JS. – rand