Машинопись: Я верующий

Недавно я написал много облачных функций Firebase. И когда я начинал, я использовал Javascript. Но Javascript был крайне раздражающим. В основном потому, что облачные функции должны запускаться на сервере Google где-то, к которому вы обращаетесь исключительно с помощью вызовов HTTPS. Поэтому трудно получить информацию о том, что пошло не так.

Хотя я придумал, как получить больше информации об ошибках: просто оберните свой код в блок try catch и при ошибке отобразите ошибку как ответ, например: return res.status(500).send(error.toString());

Но с написанием кода на Javascript по-прежнему много проблем. Очень часто я получаю сообщение о том, что функция не существует. Поэтому я решил, что смогу обойти эти проблемы с помощью Typescript.

Перенос облачных функций в Typescript

Переход был фактически довольно безболезненным. Любой код Javascript является допустимым кодом Typescript. За исключением того, что вы все равно можете получить несколько предупреждений. Typescript намного строже, чем Javascript. Ему не нужен ненужный импорт, и он хочет, чтобы вы присвоили своим переменным тип. Хотя достаточно просто ввести их как any.

Это означает, что мне потребовалось около минуты, чтобы преобразовать мой код Javascript в Typescript. У меня не было столько кода. Хотя я не следовал инструкциям по обновлению Firebase, вместо этого я просто удалил все свои функции, заново все инициализировал, а затем снова вставил свой код.

Это также означает, что все ответы на переполнение стека Javascript, которые вы нашли в Интернете, по-прежнему будут работать. Что касается того, почему они работают, ну, это другой вопрос. Javascript — это язык, который не поддается логике, и для того, чтобы сделать Typescript совместимым с Javascript, Typescript пришлось скопировать все эти решения.

Javascript был языком, собранным за 10 дней. И теперь это стандарт, которого должны придерживаться все браузеры, поэтому удаление чего-либо из спецификации приведет к сбою многих сайтов. Это означает, что есть просто слои и слои устаревших функций, которые никто не хочет удалять, вызывая всевозможные случайные синтаксические решения. Таким образом, вы получаете такие вещи, как обратные кавычки для интерполяции строк, ключевое слово new на самом деле…