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

Шаг 1: Установите зависимости

Во-первых, вам нужно установить необходимые зависимости. Вам понадобятся `@types/node` и `dotenv`. Вы можете установить их с помощью npm:

npm install @types/node dotenv

Шаг 2: Создайте файл .env

Создайте файл `.env` в корне вашего проекта и добавьте переменные среды в формате `VARIABLE_NAME=value`. Например:

PORT=3000
DATABASE_URL=postgres://user:password@localhost:5432/mydatabase

Шаг 3: Загрузите переменные среды

Вам необходимо загрузить переменные среды из файла .env в объект Node.js `process.env`. Вы можете сделать это с помощью пакета `dotenv`. Добавьте следующий код в точку входа вашего приложения (обычно `index.ts` или `server.ts`):

import dotenv from 'dotenv';
dotenv.config();

Шаг 4: Определите типы для process.env

Создайте новый файл `process-env.d.ts` в корне вашего проекта и добавьте следующий код:

declare global {
  namespace NodeJS {
    interface ProcessEnv {
      [key: string]: string | undefined;
      PORT: string;
      DATABASE_URL: string;
      // add more environment variables and their types here
    }
  }
}

Этот код объявляет новый модуль NodeJS и интерфейс ProcessEnv в глобальном пространстве имен. Интерфейс ProcessEnv расширяет интерфейс NodeJS.ProcessEnv и определяет типы переменных среды. В этом примере мы определили переменные PORT и DATABASE_URL со строковыми типами. Здесь вы можете добавить дополнительные переменные среды и их типы.

Шаг 5: Используйте переменные среды

Теперь вы можете использовать переменные среды в своем коде с проверкой типов. Например:

import express from 'express';

const app = express();

const port = process.env.PORT;
const databaseUrl = process.env.DATABASE_URL;

app.listen(port, () => {
  console.log(`Server is running on port ${port}`);
});

// use databaseUrl to connect to a database

Заключение

Определение типов для process.env в TypeScript может помочь предотвратить ошибки и сделать ваш код более удобным для сопровождения. Следуя шагам, описанным в этом руководстве, вы сможете легко определить типы для переменных среды и использовать их с проверкой типов в своем коде. Удачного кодирования!