Потеря точности
Запрет числовых литералов, которые теряют точность
Использование конфигурации recommended из @eslint/js в файле конфигурации активирует это правило
Это правило запрещает использование числовых литералов, которые теряют точность во время выполнения при преобразовании в JS Number из-за округления в 64-битных числах с плавающей точкой.
Подробное описание правила
В JS, Number хранятся как числа с плавающей точкой двойной точности в соответствии со стандартом IEEE 754. Из-за этого числа могут сохранять точность только до определённого количества цифр. Если программист введёт дополнительные цифры, эти цифры будут потеряны при преобразовании в тип Number и приведут к непредсказуемому поведению.
Примеры неправильного кода для этого правила:
/*eslint no-loss-of-precision: "error"*/
const a =
const b =
const c =
const d =
const e =
const f = ;
Примеры правильного кода для этого правила:
/*eslint no-loss-of-precision: "error"*/
const a = 12345
const b = 123.456
const c = 123e34
const d = 12300000000000000000000000
const e = 0x1FFFFFFFFFFFFF
const f = 9007199254740991
const g = 9007_1992547409_91
Версия
Это правило было добавлено в ESLint v7.1.0.
Ресурсы
© OpenJS Foundation and other contributors
Licensed under the MIT License.
https://eslint.org/docs/latest/rules/no-loss-of-precision