Вместо вступления:
Я не считаю C-подобный синтаксис лучше синтаксиса lua и не буду заставлять вас переписывать все ваши программы на TypeScript! Я просто хочу поделится с вами альтернативой и рассказать про ее преимущества и недостатки.
# Что такое TypeScript?
TypeScript — язык программирования, представленный Microsoft в 2012 году и позиционируемый как средство разработки веб-приложений. Он создан для расширения JavaScript и он компилируется в JavaScript, но также существует инструмент для преобразования TypeScript кода в Lua. Вам может показаться, что этот транслятор крайне ограничен, но, поверьте мне, его возможности впечатляют.
# Почему его стоит попробовать?
Я сначала продемонстрирую некоторые возможности TypeScript графически, а потом подробно расскажу про установку и настройку необходимых инструментов. Я покажу вам далеко не все возможности TypeScript, а только самые основные и интересные.
Из-за большого размера контент каждого раздела будет скрыт под спойлер.
1. Статический анализ
2. Автодополнение
3. ООП
4. Стандартная библиотека и возможности языка
# Как это работает?
Конечно же все не так просто. Компилятор просто так не узнает типы методов и полей объектов, с которыми мы будем работать. Для того, чтобы описать наше окружение необходимо написать так называемые файлы декларации или тайпинги. Хочу сразу вас обрадовать - это не ваша задача. Существует репозиторий с такими декларациями, в котором, на данный момент, существуют типы для большинства API и компонентов OpenOS и библиотеки GUI.
От вас требуется только установить все необходимые инструменты и правильно их настроить.
# Установка
Редактор кода
Вы можете использовать любой редактор кода с поддержкой TypeScript. Я рекомендую VSCode, который поддерживает его из коробки.
NodeJS
Он необходим нам для установки необходимых пакетов (он поставляется с пакетным менеджером npm) и для запуска транспилера. Вы можете скачать последнюю стабильную версию с официального сайта.
Использование плагина для VSCode (рекомендуется):
Создание проекта вручную:
Для компиляции используйте команду npm run build. Сгенерированные lua файлы появятся в папке dist.
# Особенности работы транспилера
В этой секции я подробно раскажу про недостатки этого подхода, возможные проблемы и способы их решения.
1. Параметр self
2. Множественные значения
3. Индексы
# Ссылки
Официальный сайт и документация TypeScript (англ)
Серия русских статей по TypeScript
Документация TypeScriptToLua (англ)
Тайпинги