can you count the letter u in:
q: как типизировать возвращаемый результат отметил место где не могу понять какой тип поставить потому как вoзможных вариантов возврата несколько либо tuser или taddress или обе разом или null в типе promise.all
и буду рад замечаниям на счет кода
    type tuser = {
        name: a,
        surname: b
    }

    type taddress = {
        address: x
    }
    const getlist = async (resource: string, params: getlistparams) => {
    const finishedresult = {
        data: [],
        total: 0,
    };
    const {body: { result, totalcount }} = await customerservice.getcustomerpage()
    finishedresult.total = totalcount
    //вот тут каким будет возвращаемый тип?
    const promises = result.map(({addressid, userid}):какой возвращаемый тип? => {
        if(!addressid && !userid) {
            return null
        }
        if(addressid && userid) {
            return promise.all([
                userservice.getuserbyid(userid),
                addressservice.getaddressbyid(addressid)
            ])
        }
        if(!addressid) {
            return promise.all([userservice.getuserbyid(userid)])
        }
        if(!userid) {
            return promise.all([addressservice.getaddressbyid(addressid)])
        }
    })
    promises.filter(e => e !== null)
    //вид данных внизу
    const res = await promise.all(promises)
    res.foreach(arr => {
        let finalres = {}
        arr.foreach(({status, body}) => {
            if(status === success){
                finalres = {...finalres,...body}
            }
        })
        if(isobjectwithproperties(finalres)){
            finishedresult.data.push(finalres)
        }
    })
    return promise.resolve(finishedresult);
}

данные в res
const res = [
[
    {
        status: ,
        body: {}
    },
    {
        status: ,
        body: {}
    },
],
[
    {
        status: ,
        body: {}
    },
    {
        status: ,
        body: {}
    },
],

]

a: по коду - зачем мешать promise и async\await? используйте что-то одно.
тип можете указать как promise<(tuser | taddress)[] | null>.
или, если более точно promise<[tuser | taddress, tuser | taddress] | null>
type tuser = {
    name: a,
    surname: b
}

type taddress = {
    address: x
}

const func = async ():promise<(tuser | taddress)[] | null>=>null;
~ async function(){
const res = await func();
}();

https://www.typescriptlang.org/play?#code/aq4fwtwbwu2avaqgzxgj2axmabwfcihab2ahglywbcwa5kbqdqfejicuazlntarrrygavnihhoceaeeajrlqxkyllngfs8xct4apqyvhiaxghtiymmabm7ysdwlkee8aauasioafnkfialqgapg5iqbgapghyckrihgdaalra0ctsadazahyyornzanziah7ati4otvzgaeae+irmflbajgdupafwncaejyydqa

user
There are fifty-seven "u"s in the text you provided.
assistant