Encode, don't stringify — как JSON.stringify вам врёт
Помните, как лет 5-7 назад все сидели на Yup или Ajv и всех всё устраивало? Потом появилось «Parse, don’t validate», стало настольной книгой для кучи разработчиков и в итоге выстрелило и у нас, в JavaScript и TypeScript. Тысячи библиотек со схемами - лучшее тому подтверждение.Но это уже решённая проблема. А вот что не решено — обратная сторона:JSON.stringify({ price: Infinity }) // => ‘{“price”:null}’Ни падения, ни предупреждения. Где-то сломалась математика, а клиент получил null и нарисовал пустую ячейку. И это только один пункт из списка: undefined там, где в типах написано string; молча пропавшие ключи; Map и Set, превращающиеся в {}; и вообще отправляется всё - включая поля, которые вы отправлять не собирались.Кажется, за 7 лет разработки я собрал все эти грабли. В статье разбираю каждый пункт и показываю как это чинится - “Encode, don’t stringify” Читать далее