Тест · Асинхронный код и данные извне · урок 4 из 10Тест — колбэк или промисКак типизировать API на колбэках и чем от него отличается API на промисах?[A]API на колбэках объявляет результат собственным типом результата, а колбэк лишь сообщает о ходе работы, поэтому (err, data) => void описывает шаги, а не итог. API на промисах — та же сигнатура, обёрнутая в класс, и тип результата хранится в его методе then.[B]API на колбэках описывает результат в параметрах колбэка, например (err: Error | null, data?: T) => void, и возвращает void. API на промисах возвращает Promise<T>: результат — тип в угловых скобках, а места для ошибки там нет, и в .catch отклонение приходит как any.[C]Оба стиля кладут результат в параметры колбэка, потому что Promise<T> — лишь другое имя для (cb: (v: T) => void) => void. Тип ошибки — второй тип в скобках, Promise<T, E>, поэтому tsc проверяет, что получит .catch, а API на колбэках отличается лишь тем, что возвращает void.[D]Оба стиля типизируются одинаково, потому что tsc переписывает колбэки в промисы, когда пишет JavaScript. Результат в обоих случаях становится собственным типом результата функции, а err в строгом режиме получает тип never, так что ошибка тоже видна в этом типе.← НазадPromise.all и колбэкиДалее →Ошибка в catch — unknown