/** * @description 断言一个数值是有限数字。 */ export const internalAssertFinite = (value: number, name: string): void => { if (Number.isFinite(value) === false) { throw new RangeError(`${name} must be a finite number`) } } /** * @description 断言一个数值是非负有限数字。 */ export const internalAssertNonNegativeFinite = (value: number, name: string): void => { internalAssertFinite(value, name) if (value < 0) { throw new RangeError(`${name} must be a non-negative finite number`) } } /** * @description 断言一个颜色单位值位于 `0` 到 `1` 之间。 */ export const internalAssertColorUnit = (value: number, unitName: string): void => { if (Number.isFinite(value) === false || value < 0 || value > 1) { throw new RangeError(`Color ${unitName} must be a finite number between 0 and 1`) } } /** * @description 断言一个透明度值位于 `0` 到 `1` 之间。 */ export const internalAssertAlpha = (value: number): void => { internalAssertColorUnit(value, "alpha") } /** * @description 将浮点数按颜色计算常用精度进行圆整。 */ export const internalRoundColorFloat = (value: number): number => { return Number(value.toFixed(6)) }