Ответы пользователя по тегу TypeScript
  • Как обратится к тексту ошибки в typescript?

    @Alwafor
    В JS error может быть представлен любым типом данных, например throw 'error', throw new Error('Error!') будут синтаксически корректны. Поэтому TypeScript по умолчанию выводит тип ошибки как any.

    Однако мы можем предположить, что это за ошибка и корректно обратиться к полю message следующим образом:
    catch(error) {
      if(error instanceof Error)
        alert(error.message) // TS теперь знает, что тут есть поле message
    }

    Или другой способ, если мы точно уверены, что выбрасываемая ошибка имеет определённый тип, мы можем использовать утверждение типа (type assertion), и код будет выглядеть следующим образом:
    catch(error) {
      let e = error as Error
      alert(e.message)
    }

    Однако первый способ определённо лучше, ведь мы можем обработать ожидаемый тип ошибки (в данном случае, Error), а для всех остальных предусмотреть другое поведение.
    Ответ написан
    Комментировать