• Как в Angular проекте узнать у каких файлов нет тестов?

    Ahmad66617
    @Ahmad66617
    Senior Fullstack Engineer
    После выполнения команды ng test --watch=false --code-coverage , будет создана папка coverage - и можно размещение настроить в конфиге - и в этой папке будет билд проекта с индексным файлом - после перехода на него - вы увидите объем покрытия тестами вашего проекта
    Ответ написан
    Комментировать
  • Как в rxjs выполнить 2 запроса подряд и обработать результаты только первого?

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

    Ahmad66617
    @Ahmad66617
    Senior Fullstack Engineer
    Если использовать NgRx - то прям оч просто - диспатчишь ивент и собственно в эффект его ловишь, но до стейт менеджмента - я делал просто(если конечно не 100500 модалок там) - в Output через EventEmitter выдаешь флаг или объект, или тот же поток в RxJs - и на выходе его проверяешь - флаг сменился - вызвал один метод, если нет - то например другой, но лучше через стейты выводи - если прила обрастет модалками и прочими украшательствами - запутаешься быстро.
    Ответ написан
    Комментировать
  • Как передать данные из компонента?

    Ahmad66617
    @Ahmad66617
    Senior Fullstack Engineer
    Можно проще - через декоратор Output - только не для каждого поля отдельный Output, а передай например в него объект через EventEmitter со списком полей - а на выходе считывай свойства
    Ответ написан
    Комментировать
  • Как исправить ошибку 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]))
    Ответ написан
    Комментировать