Tengo una función con algunos valores predeterminados, cuando trato de llamar a la función y dado que tiene algunos valores predeterminados, no necesito pasar ningún valor predeterminado, por ejemplo.
function myFunc( { str1, str2, timeout = 3000, } : { str1: string, str2: string, timeout: number, } ): Promise<any | undefined> { // some logics here } await myFunc({ str1: 'string 1', str2: 'string 2' })me sale un error como
Property 'timeout' is missing in type '{ str1: string; str2: string; timeout: number;}'¿Cómo puedo resolver esto ya que hay un valor predeterminado declarado, no debería tener que pasar la propiedad si no necesito anular el valor predeterminado, no es así?
Gracias de antemano por cualquier ayuda y sugerencia.
Esta sección es solo sintaxis de JavaScript:
function myFunc( { str1, str2, timeout = 3000, }que asignará un valor de 3000 si ese parámetro no está definido. También necesitas indicarle a TypeScript cuál debe ser el tipo del parámetro, y esto:
{ str1: string, str2: string, timeout: number, } requiere timeout para ser una propiedad.
Si desea que sea opcional, tenga en cuenta que también en el tipo TypeScript, además de usar el valor predeterminado para el JavaScript (emitido).
function myFunc( { str1, str2, timeout = 3000, } : { str1: string, str2: string, timeout?: number, } ): Promise<any | undefined> { // some logics here }