Dev Highlights

Доки по разработке

This project is maintained by teniryte

Обработка исключений и тип безопасные альтернативы

Принципы

Пример

class InvalidDateFormatError extends RangeError {}
class DateIsInFutureError extends RangeError {}

function parse(date: string) {
  if (!isValid(date)) throw new InvalidDateFormatError('not a valid date format');
  if (isInFuture(date)) throw new DateIsInFutureError('date is in the future');
}

function parseSafe(
  date: string,
): Date | InvalidDateFormatError | DateIsInFutureError {
  if (!isValid(date)) return new InvalidDateFormatError('not a valid date format');
  if (isInFuture(date)) return new DateIsInFutureError('date is in the future');
  // вернуть корректную Date
}

Практика