Вступить в клуб →
лёгкаявопросTypeScript на бэкенде: данные из базы, конфиг и события

Сумма заказа с доставкой получилась «990.00150» вместо 1140

type OrderRow = { id: number; total: number };

const { rows } = await pool.query<OrderRow>(
  'SELECT id, total FROM orders WHERE id = $1', [id]   // total NUMERIC(10,2)
);
const withDelivery = rows[0].total + 150;

Компилятор доволен, а в ответе API — строка "990.00150". Почему?

  • Драйвер pg отдаёт NUMERIC строкой, а тип это скрыл
  • TypeScript складывает number и число как строки
  • PostgreSQL хранит NUMERIC как текст и так же его возвращает
  • Параметр $1 превратил всю строку результата в текст

🔒 Проверка ответа — для участников клуба

  • Проверка ответа
  • Подсказка, если застряли
  • Разбор с объяснением, почему так
  • Прогресс по всем задачам и виртуальные собеседования
Зарегистрироваться →

Регистрация занимает минуту

Другие задачи раздела