Главная | Все статьи | Дневник студента

О том, как я свой первый frontend проект на TypeScript переписывал

Время чтения статьи ~2 минуты
Статья написана студентом Хекслета. Мнение автора может не совпадать с позицией редакции
О том, как я свой первый frontend проект на TypeScript переписывал главное изображение

В самом начале мне потребовалось правильно настроить окружение, ведь сам код, на самом деле, не сильно отличается от его версии на JavaScript.

Устанавливаю TypeScript

Сперва я установил TypeScript и необходимые модули:

npm install typescript --save-dev
npm install @types/node --save-dev

@types/node требуется для подключения readline-sync через require.

Настраиваю ESLint и Prettier

Зачем нужен Prettier? Всё просто, он делает код более красивым (например, может разбить слишком длинную строку).

npx eslint --init

Здесь выбирал всё то же, что и в первом проекте, но в вопросе про TypeScript нажимал на yes.


Про установку и настройку Prettier вы можете посмотреть на их официальном сайте, тут я лишь покажу итоговые настройки.

.eslintrc.yml

extends:
  - plugin:@typescript-eslint/recommended
  - plugin:import/errors
  - plugin:import/warnings
  - plugin:import/typescript
  - airbnb-base
  - plugin:prettier/recommended
  - prettier

plugins:
  - '@typescript-eslint'
  - 'prettier'

package.json

"devDependencies": {
    "@types/node": "^16.10.3",
    "@typescript-eslint/eslint-plugin": "^4.33.0",
    "@typescript-eslint/parser": "^4.33.0",
    "eslint": "^7.32.0",
    "eslint-config-airbnb-base": "^14.2.1",
    "eslint-config-prettier": "^8.3.0",
    "eslint-plugin-import": "^2.24.2",
    "eslint-plugin-prettier": "^4.0.0",
    "prettier": "^2.4.1",
    "readline-sync": "^1.4.10",
    "typescript": "^4.4.3"
  }

Немного отредактировал Makefile

Запуск линтера осуществляю следующим образом:

npx eslint **/*.ts

Так линтер будет проверять только TypeScript файлы.

Теперь я смог приступить к самому интересному, коду

Создал копии своих .js файлов в разрешении .ts и скопировал туда весь код.

Единственное отличие – импорт readline-sync, он теперь осуществляется следующим образом:

import readlineSync = require("readline-sync");

Дальше я запускаю проверку линтером и исправляю всё на что тот ругается.

Завершаю проект

Когда я закончил исправлять все ошибки и ESLint вернулся со статусом "0", приступил к компиляции TypeScript кода в JavaScript. Делается это при помощи запуска компилятора командой tsc.

После этого проверил работоспособность проекта и выложил свой код :)

Если вам интересно что у меня в итоге получилось, то добро пожаловать на мой GitHub.

К сожалению я никак не использовал интерфейсы и другие классные TypeScript штуки, но у меня уже есть идеи как это исправить и что можно будет добавить в проект. Думаю потом я напишу об этом.

А на этом у меня всё, спасибо за внимание!

Аватар пользователя Шахзод Давлатов
Шахзод Давлатов 14 октября 2021
8
Рекомендуемые программы
профессия
от 6 300 ₽ в месяц
Разработка фронтенд-компонентов для веб-приложений
10 месяцев
с нуля
Старт 2 мая
профессия
от 6 300 ₽ в месяц
Разработка веб-приложений на Django
10 месяцев
с нуля
Старт 2 мая
профессия
от 6 183 ₽ в месяц
Ручное тестирование веб-приложений
4 месяца
с нуля
Старт 2 мая
профессия
от 6 300 ₽ в месяц
Разработка приложений на языке Java
10 месяцев
с нуля
Старт 2 мая
профессия
от 5 025 ₽ в месяц
новый
Сбор, анализ и интерпретация данных
9 месяцев
с нуля
Старт 2 мая
профессия
от 6 300 ₽ в месяц
Разработка веб-приложений на Laravel
10 месяцев
с нуля
Старт 2 мая
профессия
от 5 840 ₽ в месяц
Создание веб-приложений со скоростью света
5 месяцев
c опытом
Старт 2 мая
профессия
от 9 900 ₽ в месяц
Разработка фронтенд- и бэкенд-компонентов для веб-приложений
16 месяцев
с нуля
Старт 2 мая
профессия
от 6 300 ₽ в месяц
Разработка бэкенд-компонентов для веб-приложений
10 месяцев
с нуля
Старт 2 мая
профессия
новый
Автоматизированное тестирование веб-приложений на JavaScript
8 месяцев
c опытом
в разработке
Старт 2 мая
профессия
Верстка с использованием последних стандартов CSS
5 месяцев
с нуля
Старт в любое время