Estás mirando TypeScript. Hay 1 parámetro, que es un objeto. Ese es el primero {}. Luego hay dos puntos y otro objeto ... pero eso después de los dos puntos no es otro objeto clave: valor, es la definición del primer objeto. Dice que el primer objeto debe tener una clave de "configuración" y el valor de la clave de configuración es una "CondicionalFormattingConfig", sea lo que sea. Y debe tener una clave "onChange" que tome una función que acepte un parámetro 'config' (de tipo ConditionalFormattingConfig) y no devuelva nada (void). Etc....
Y volviendo al primer parámetro, en lugar de usar un nombre de variable para el parámetro que toma esta función, está usando algo llamado "desestructuración de objetos". Entonces, en lugar de solicitar una variable llamada params y luego acceder a ella como "params.config", extraen las claves del objeto en variables.
// You can do this function doSomething(params) { doSomethingWith(params.config) } // This is the same with object destructuring function doSomething({config}) { doSomethingWith(config) } const myObject = {config: 'fast'} doSomething(myObject)Espero que eso aclare las cosas.