Освоение диапазонов чисел в TypeScript: подробное руководство

В TypeScript работа с диапазонами чисел является общим требованием, особенно когда речь идет о проверке данных или реализации бизнес-логики. В этой статье мы рассмотрим различные методы эффективной обработки диапазонов чисел с использованием мощной системы типов TypeScript. Итак, хватайте шляпу программиста и начнем!

  1. Подход с оператором «if».
    Один простой способ проверить, попадает ли число в определенный диапазон, — использовать условные операторы. Например:
function isInRange(number: number): boolean {
  if (number >= 0 && number <= 100) {
    return true;
  }
  return false;
}
  1. Подход с использованием класса «диапазон».
    Мы можем создать многоразовый класс Range, который инкапсулирует логику для числовых диапазонов. Вот пример:
class Range {
  private min: number;
  private max: number;
  constructor(min: number, max: number) {
    this.min = min;
    this.max = max;
  }
  isInRange(number: number): boolean {
    return number >= this.min && number <= this.max;
  }
}
const range = new Range(0, 100);
console.log(range.isInRange(50)); // Output: true
console.log(range.isInRange(150)); // Output: false
  1. Подход «включающий» и «эксклюзивный» диапазон:
    Иногда нам необходимо определить, включает ли диапазон границы или нет. Мы можем изменить класс Range, чтобы он поддерживал как инклюзивные, так и исключительные диапазоны. Вот пример:
class Range {
  private min: number;
  private max: number;
  private inclusive: boolean;
  constructor(min: number, max: number, inclusive: boolean = true) {
    this.min = min;
    this.max = max;
    this.inclusive = inclusive;
  }
  isInRange(number: number): boolean {
    if (this.inclusive) {
      return number >= this.min && number <= this.max;
    } else {
      return number > this.min && number < this.max;
    }
  }
}
const inclusiveRange = new Range(0, 100); // Inclusive range
const exclusiveRange = new Range(0, 100, false); // Exclusive range
console.log(inclusiveRange.isInRange(100)); // Output: true
console.log(exclusiveRange.isInRange(100)); // Output: false
  1. Подход с использованием «служебных функций».
    Если вы предпочитаете более функциональный стиль программирования, вы можете создать служебные функции для проверки диапазонов чисел. Вот пример:
function isInRange(number: number, min: number, max: number, inclusive: boolean = true): boolean {
  if (inclusive) {
    return number >= min && number <= max;
  } else {
    return number > min && number < max;
  }
}
console.log(isInRange(50, 0, 100)); // Output: true
console.log(isInRange(150, 0, 100)); // Output: false

В этой статье мы рассмотрели несколько методов обработки диапазонов чисел в TypeScript. Независимо от того, предпочитаете ли вы подход с оператором «if», класс Range или служебные функции, система типов TypeScript позволяет вам с легкостью определять и проверять диапазоны чисел. Используя эти методы, вы можете обеспечить корректность и надежность своего кода при работе с диапазонами чисел.

Не забудьте выбрать тот подход, который лучше всего соответствует потребностям вашего проекта. Приятного кодирования!