В TypeScript можно обрабатывать исключения с помощью механизма try/catch/finally
. Однако, TypeScript является надмножеством JavaScript, который не имеет встроенной поддержки исключений.
Вместо использования исключений, JavaScript и TypeScript обычно используют более гибкую модель обработки ошибок при помощи возврата специальных значений или обработки ошибок с помощью обратных вызовов (callback) или промисов (promises).
Однако, если вы хотите эмулировать исключения в TypeScript, можно использовать пользовательский тип данных, представляющий ошибку, и выбрасывать его в коде при возникновении проблемных ситуаций. Вот пример, как это можно реализовать:
class ListException { constructor(public message: string) {} toString(): string { return this.message; } } function addItemToList(list: any[], item: any) { if (!item) { throw new ListException("Item is required."); } else { list.push(item); } } const myList = [1, 2, 3]; try { addItemToList(myList, null); } catch (e) { if (e instanceof ListException) { console.log(e.message); // Output: "Item is required." } }
В этом примере создается пользовательский класс ListException
, который представляет ошибку добавления элемента в список. В функции addItemToList
производится проверка на наличие элемента. Если элемент отсутствует, то генерируется исключение типа ListException
. При вызове функции addItemToList
в блоке try
, исключение поймается в блоке catch
и обработает ошибку.
Но важно отметить, что использование подобной модели обработки ошибок при помощи исключений в TypeScript не является распространенным и не рекомендуется. Часто лучше использовать другие подходы, такие как возврат специальных значений или использование обратных вызовов или промисов для обработки ошибок.