Tengo problemas para usar los parámetros iniciales (no estoy seguro de si hay una solución de mecanografiado o es solo una pregunta de JavaScript, así que les presento el equivalente de Javascript):
const helloWorldWithOptions = (options = { a:1, b:2 } ) => { console.log("Hello World!") };Al usar la función:
helloWorldWithOptions( {a:4} ); Typescript dice que me falta la clave de objeto b cuando uso la función. Lo que esperaría es que js/ts llene los valores faltantes con los parámetros iniciales. Si ya hay un estado del arte, házmelo saber.
Puede especificar valores predeterminados siempre que declare una función:
function aFunction({a = 1, b = 2}) {console.log(a, b)} aFunction({}) //prints "1 2"en este caso, 'aFunction' recibe un objeto, y cada vez que llama a la función con un objeto vacío, automáticamente llena los campos en blanco. Alternativamente, puede llamar a 'aFunction' con los parámetros que desee, por ejemplo:
aFunction({a: 2, b: 3}) //prints "2 3"Puede usar el tipo Partial y ... la dispersión para combinar sus valores predeterminados con las anulaciones de la persona que llama.
const defaults = { a: 1, b: 2 }; // Could use a named type instead of `typeof defaults` too. const helloWorldWithOptions = (options: Partial<typeof defaults> = {}) => { const mergedOptions = { ...defaults, ...options }; console.log(mergedOptions); }; helloWorldWithOptions({ a: 3 });