Изучение TypeScript: ограничения произвольных чисел в TypeScript

В TypeScript нам часто приходится накладывать пользовательские ограничения на числовые значения. Это может быть полезно в сценариях, где мы хотим ограничить числовое значение, чтобы оно не превышало указанного максимального значения, обозначаемого как «x». В этой статье мы рассмотрим различные методы достижения этой цели на примерах кода.

Методы:

  1. Условный оператор.
    Один простой подход — использовать условный оператор (?:), чтобы проверить, превышает ли число максимальное значение, и если да, то присвоить ему максимальное значение.. Вот пример:
function ensureMaxValue(value: number, max: number): number {
  return value > max ? max : value;
}
const number1: number = 7;
const max1: number = 5;
const result1: number = ensureMaxValue(number1, max1);
console.log(result1); // Output: 5
  1. Math.min():
    Другой метод — использовать функцию Math.min()для сравнения числа с максимальным значением и возврата меньшего значения. Вот пример:
function ensureMaxValue(value: number, max: number): number {
  return Math.min(value, max);
}
const number2: number = 7;
const max2: number = 5;
const result2: number = ensureMaxValue(number2, max2);
console.log(result2); // Output: 5
  1. Пользовательский класс:
    Вы также можете создать собственный класс, который инкапсулирует число и предоставляет метод, обеспечивающий максимальное значение. Вот пример:
class CustomNumber {
  private value: number;

  constructor(initialValue: number) {
    this.value = initialValue;
  }

  public getValue(): number {
    return this.value;
  }

  public ensureMaxValue(max: number): void {
    this.value = Math.min(this.value, max);
  }
}
const number3: CustomNumber = new CustomNumber(7);
const max3: number = 5;
number3.ensureMaxValue(max3);
console.log(number3.getValue()); // Output: 5