Saltar al contenido

    ↑↓ mover · ⏎ abrir · esc cerrar

    TS2769

    Ninguna sobrecarga coincide

    No overload matches this call.

    Las palabras del propio compilador. Sin traducir — es la cadena que pegaste en el buscador.

    La función tiene varias firmas y los argumentos no encajan en ninguna. El compilador informa entonces de cada intento, y por eso este error es tan largo.

    Reproducción

    declare function f(a: string): void
    declare function f(a: number): void
    
    f(true)

    La compilación afirma que esto emite exactamente este código.

    Por qué lo dice el compilador

    La resolución de sobrecargas prueba cada firma en orden de declaración y se detiene en la primera que encaja. Cuando ninguna lo hace, no hay un único error «correcto» que informar, así que informa del fallo de cada candidata por turno. La parte útil casi nunca es la primera línea: es la lista de debajo, donde una candidata suele haber fallado por un motivo mucho menor que las demás.

    Arreglos

    1. 01
      declare function f(a: string): void
      declare function f(a: number): void
      
      f('true')

      Encaja con una de ellas. Busca en la lista la candidata cuya queja sea menor y satisface esa.

    2. 02
      declare function f(a: string): void
      declare function f(a: number): void
      declare function f(a: boolean): void
      
      f(true)

      O añade la sobrecarga que faltaba, si la función debería admitir esta forma. Las sobrecargas son una lista de usos previstos; un uso nuevo significa una entrada nueva.

    Conclusión

    Lee los errores de sobrecarga de abajo arriba. La última candidata suele ser la que querías, y su queja es la que merece la pena arreglar.

    Errores