Saltar al contenido
TS2393

    ↑↓ mover · ⏎ abrir · esc cerrar

    TS2393

    Implementación de función duplicada

    Duplicate function implementation.

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

    Dos cuerpos de función comparten nombre en el mismo ámbito; las sobrecargas pueden tener muchas firmas, pero una sola implementación.

    Reproducción

    function parse(value: string) {
      return value
    }
    
    function parse(value: number) {
      return value
    }

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

    Por qué lo dice el compilador

    JavaScript no despacha entre declaraciones con el mismo nombre según el tipo del parámetro; la posterior reemplazaría a la anterior. Las sobrecargas de TypeScript separan varias firmas solo de tipo de un único cuerpo emitido.

    Arreglos

    1. 01
      function parse(value: string): string
      function parse(value: number): number
      function parse(value: string | number): string | number {
        return value
      }

      Escribe las firmas de sobrecarga seguidas de una implementación suficientemente amplia para manejarlas todas.

    2. 02
      function parseText(value: string) {
        return value
      }
      
      function parseNumber(value: number) {
        return value
      }

      Da nombres distintos a operaciones distintas cuando no necesiten una API sobrecargada común.

    Conclusión

    Un conjunto de sobrecargas tiene muchas declaraciones, pero exactamente un cuerpo.

    Adónde ir después

    Errores