TYPESCRIPT: Пример для изучения Часть 1

Как настоящий «фуллстек» все могу все умею программист, я часто пишу обе части кода, и часто это достаточно неприятные минуты «яваскрипт» ненависти.
С этим надо как-то бороться, и отличным примером борьбы является использование typescript. В качестве примера будет использован алгоритм игры «жизнь» (см https://ru.wikipedia.org/wiki/Жизнь_(игра))

В PhpStorm поддержка typescript включается плагином, после этого достаточно создать первый файл *.ts и указать параметры компиляции в tsconfig.json (я предпочитаю складывать код js в отдельную папку, чтобы на него не натыкаться при разработке). Я накручиваю сразу все остальные штучки из npm, так как дальше проект обрастает обычно компиляцией css, дополнительными либами и прочая прочая прочая). Полный пример кода можно скачать тут

Шаг 1. Наивный Javascript

Чистый вариант кода, который абсолютно «чистояваскрипт» и кучка переменных. Недостатков масса, и самый «больной» невозможность создать вторую матрицу рядышком с первой. Просто попробуйте.

Шаг 2. Наивный Typescript

Внесем все в класс, но оставим «наивность» работы с dom деревом — и прощай производительность (this.showTable() — полностью перерисовывает таблицу на каждом шаге)

Шаг 3. Экономный Typescript

Вынесем все что можно в константы вообще, а саму клеточку привяжем к ячейке…

alive

Шаг 4. Наследование и почему собственно Typescript

А теперь сделаем вторую матрицу непохожей — пусть жизнь в ней «расползается» из центра игрового поля. Для этого расширим класс матрицы и вынесем «генератор» начального состояния поля в зависимую от положения функцию.

Оставить комментарий

XHTML: Вы можете использовать такие теги: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre lang="" line="" escaped="" cssfile="">