Перейти к содержанию
  • Лента
  • Категории
  • Последние
  • Метки
  • Популярные
  • Пользователи
  • Группы
Свернуть
exlends
Категории
  1. Главная
  2. Категории
  3. Языки программирования
  4. TypeScript
  5. Добавляем TypeScript в проект

Добавляем TypeScript в проект

Запланировано Прикреплена Закрыта Перенесена TypeScript
typescript
4 Сообщения 2 Постеры 75 Просмотры
  • Сначала старые
  • Сначала новые
  • По количеству голосов
Ответить
  • Ответить, создав новую тему
Авторизуйтесь, чтобы ответить
Эта тема была удалена. Только пользователи с правом управления темами могут её видеть.
  • kirilljsxK Не в сети
    kirilljsxK Не в сети
    kirilljsx
    js
    написал в отредактировано
    #1

    Предположим мы добавить к текущему или новому проекту на JS строгую типизацию.
    Для этого выполним команду и установим его с флагом --save-dev (для компиляции TypeScript в JS) :

    npm install --save-dev typescript
    

    Работу самого компилятора TypeScript можно настроить, для этого нам потребуется конфигурационный файл с настройками.
    В этом нам поможет утилита tsc:

    ./node_modules/.bin/tsc --init
    

    После выполнения команды в корне проекта должен появиться файл tsconfig.json:

    Снимок экрана 2025-08-27 в 16.38.19.png

    Расширения файлов следующее .ts.


    Далее я предоставлю структуру простого проекта. Все файлы исходного кода находятся в папке src и написаны на TypeScript.

    Файлы сборки находиться в папке dist.

    Проект
      |--dist
      |   |--index.js
      |   |--index.html
      |   |--user
      |   |   |--name.js
      |   |   |--photo.jpg
      |--src
      |   |--index.ts
      |   |--index.html
      |   |--user
      |   |   |--name.ts
      |   |   |--photo.jpg
      |--package.json 
    

    Обратим теперь свое внимание на файл package.json, разберем нюанс.

    Внутри есть параметр main — это точка входа нашего приложения. Если мы используем TypeScript, то в этом параметре требуется указать путь к скомпилированному файлу.

    Пример конфигурации:

    {
      "name": "my-project",
      "version": "1.0.0",
      "main": "dist/index.js",  // путь к скомпилированному файлу
      "scripts": {
        "build": "tsc",         // команда для компиляции TypeScript
        "start": "node dist/index.js"
      },
      "devDependencies": {
        "typescript": "^5.9.2"
      }
    }
    

    Запускаем TypeScript

    Далее для запуска серверного TypeScript в режиме разработки может быть полезен инструмент ts-node. Этот пакет объединяет сборку через tsc и запуск с помощью Node.JS.

    Так можно миновать компиляцию проекта в dist и запустить его напрямую.

    Для запуска серверного TypeScript в режиме разработки можем использовать инструмент ts-node, данный пакет объединяет сборку через tsc и запускается при помощи node.js.

    Давайте установим ts-node:

    npm install --save-dev ts-node 
    

    Создадим для примера TypeScript файл - script.ts:

    // script.ts
    
    const user: string = 'User';
    
    console.log(user);
    

    Не забудем добавить команду для запуска в package.json:

    {
      "scripts": {
        "start": "ts-node ./script.ts",
      },
    } 
    

    Все готово, можно запускать!

    > npm start
    User
    

    Для примера также приложу полный файл package.json:

    {
      "scripts": {
        "start": "ts-node ./script.ts",
      },
      "devDependencies": {
        "ts-node": "^10.9.2",
        "typescript": "^5.9.2"
      }
    }
    
    

    На этом все! Теперь мы можем использовать полноценно TypeScript в своих проектах.

    1 ответ Последний ответ
    0
    • JspiJ Не в сети
      JspiJ Не в сети
      Jspi
      js
      написал в отредактировано Jspi
      #2

      через tsx удобнее всего запускать

      1 ответ Последний ответ
      0
      • kirilljsxK kirilljsx сослался на эту тему в
      • kirilljsxK Не в сети
        kirilljsxK Не в сети
        kirilljsx
        js
        написал в отредактировано
        #3

        Про компиляцию написал в этой теме.

        1 ответ Последний ответ
        0
        • JspiJ Не в сети
          JspiJ Не в сети
          Jspi
          js
          написал в отредактировано Jspi
          #4

          вот тема:
          Запуск Typescript в Node js без сборки и сложных конфигов

          Вот сводная, кратко объясняющая разные способы запуска

          Возможность tsx ts-node node --experimental-strip-types
          Принцип работы Самостоятельный транспайлер (esbuild), запускает «как есть» без отдельного tsc. Использует компилятор TypeScript (можно esbuild/swc), но требует зависимости @swc/core или ttypescript для скорости. Встроенный «strip-only» проход: вырезает аннотации типов и подсасывает оставшийся JS.
          Поддержка ESM «из коробки» (import, import.meta.url, package.json "type": "module"). Нужен флаг --esm или "module": "ESNext" в tsconfig + "type": "module" в package.json. Полностью нативный ESM – работает ровно как обычный Node.
          Поддерживаемые версии Node.js 16.17+ (LTS). 14+, но быстрый SWC-путь только с 18+. 22.3+ (экспериментальный флаг).
          source-maps / отладка Генерирует встроенные source maps, работает с --inspect. Генерирует source maps, но иногда требует доп. настроек. Source maps не выдаёт – отладка только по «обрезанному» JS.
          Тип-чекинг Нет (только транспайл). Да, если не отключить transpileOnly. Нет (только strip).
          Итог Самый быстрый «1-командный» способ запуска TS без компиляции. Универсальный, но чуть сложнее в настройке и медленнее. Почти «zero-deps», но пока экспериментален и без диагностики типов.

          Особенно важно обратить внимание на ES модули, т.к они обычно встречаются в любом не helloworld коде, и tsx их нормально жует без доп. настроек. Еще важно, что node --experimental-strip-types пока не полностью поддерживает весь синтаксис ts, например enum

          1 ответ Последний ответ
          0
          • kirilljsxK kirilljsx сослался на эту тему в

          Категории

          • Главная
          • Новости
          • Фронтенд
          • Бекенд
          • Языки программирования

          Контакты

          • Сотрудничество
          • info@exlends.com
          • Наш чат
          • Наш ТГ канал

          © 2024 - 2025 ExLends, Inc. Все права защищены.

          Политика конфиденциальности
          • Войти

          • Нет учётной записи? Зарегистрироваться

          • Войдите или зарегистрируйтесь для поиска.
          • Первое сообщение
            Последнее сообщение
          0
          • Лента
          • Категории
          • Последние
          • Метки
          • Популярные
          • Пользователи
          • Группы