Скидки до 28% + 2-ая профессия бесплатно и подарки на 50 000₽

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

О том, как я свой первый 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
Похожие статьи
Рекомендуемые программы
профессия
Верстка на HTML5 и CSS3, Программирование на JavaScript в браузере, разработка клиентских приложений используя React
10 месяцев
с нуля
Старт 26 декабря
профессия
Программирование на Python, Разработка веб-приложений и сервисов используя Django, проектирование и реализация REST API
10 месяцев
с нуля
Старт 26 декабря
профессия
Тестирование веб-приложений, чек-листы и тест-кейсы, этапы тестирования, DevTools, Postman, SQL, Git, HTTP/HTTPS, API
4 месяца
с нуля
Старт 26 декабря
профессия
Программирование на Java, Разработка веб-приложений и микросервисов используя Spring Boot, проектирование REST API
10 месяцев
с нуля
Старт 26 декабря
профессия
новый
Google таблицы, SQL, Python, Superset, Tableau, Pandas, визуализация данных, Anaconda, Jupyter Notebook, A/B-тесты, ROI
9 месяцев
с нуля
Старт 26 декабря
профессия
Программирование на PHP, Разработка веб-приложений и сервисов используя Laravel, проектирование и реализация REST API
10 месяцев
с нуля
Старт 26 декабря
профессия
Программирование на Ruby, Разработка веб-приложений и сервисов используя Rails, проектирование и реализация REST API
5 месяцев
c опытом
Старт 26 декабря
профессия
Программирование на JavaScript в браузере и на сервере (Node.js), разработка бекендов на Fastify и фронтенда на React
16 месяцев
с нуля
Старт 26 декабря
профессия
Программирование на JavaScript, разработка веб-приложений, bff и сервисов используя Fastify, проектирование REST API
10 месяцев
с нуля
Старт 26 декабря
профессия
новый
Git, JavaScript, Playwright, бэкенд-тесты, юнит-тесты, API-тесты, UI-тесты, Github Actions, HTTP/HTTPS, API, Docker, SQL
8 месяцев
c опытом
Старт 26 декабря