Só pra ser chato, a solução dada ainda continua usando parâmetros. Só que em vez de vários valores separados, é apenas um único objeto contendo todos (mas o objeto Params
continua sendo um parâmetro).
Claro que esta abordagem tem vantagens - eu mesmo já usei em várias ocasiões. Mas também não é pra abusar e sempre agrupar todos os parâmetros em um único objeto, tem que ver a semântica e agrupar só o que faz sentido estar junto (senão vc pode acabar misturando, por exemplo, dados cadastrais do usuário com itens do carrinho, com dados do cartão - esse é um caso em que três objetos separados faria mais sentido).
Cada caso é um caso, não existe solução universal. Tem vezes, inclusive, que não faz sentido juntar (por exemplo, se os parâmetros não tem relação nenhuma entre si e faz mais sentido ficarem separados mesmo). O importante é saber que é possível juntar, e analisar caso a caso se faz sentido usar.
E se for para ter mais informações sobre os parâmetros, talvez seja o caso de usar TypeScript... :-)