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

    Ahmad66617
    @Ahmad66617
    Senior Fullstack Engineer
    Очень просто - вот мой образец эффекта при авторизации
    63e2be1ac64b4291352946.png
    и вся соль в том - что сам эффект по дэфолту должен вернуть экшен, например return of({ type: ''some action }), так как на скрине в секции catchError; исключение - если диспатчить экшен не надо(на скрине в настройке эффекта надо выставить флаг dispatch: false, тогда экшен по сути станет void процедурой; если не указано обратное, то эффект ждет на возврате экшен.
    Ответ написан
  • Ошибка типа Typescript, как исправить?

    Ahmad66617
    @Ahmad66617
    Senior Fullstack Engineer
    У вас в конце поста ответ - в таком случае сделайте поля необязательными, либо принимайте частично объект через Partial в вашем случае
    Ответ написан
    Комментировать
  • Как в rxjs выполнить 2 запроса подряд и обработать результаты только первого?

    Ahmad66617
    @Ahmad66617
    Senior Fullstack Engineer
    Как правильно сказано было выше - насчет коллбэков например и вагона проверок на if-ах - посмотри в сторону exchaustMap - сам юзаю - в эффектах NgRx - когда нужно с бэка дождаться результата и потом что-то делать
    Ответ написан
    Комментировать
  • Как исправить ошибку No overload matches TS?

    Ahmad66617
    @Ahmad66617
    Senior Fullstack Engineer
    В твоем коде - в реализации ты задал винегрет из типов - причем одноименных - и компилятор путается - какой использовать - удали лишние - и оставь общий(где можно передать или число или массив с числом) - и все заработает.
    Либо еще есть вариант наподобие того что ты предлагал - проверят входной тип аргумента - т е на if-ах - если число - то один возврат, если массив то другой(ставил на пробу такой же) - все работает - только кода больше.

    type Item = {id: number}

    function providerGetItem(id: number | number[]): Item | Item[] {
    return typeof id === 'number' ? {id} : id.map(id => ({id}))
    }

    function getItem(id: number | number[]): Item | Item[] {
    return providerGetItem(id);
    }

    console.log(getItem(1))
    console.log(getItem([2]))
    Ответ написан
    Комментировать