Saltar al contenido

    ↑↓ mover · ⏎ abrir · esc cerrar

    TS2304

    No se encuentra el nombre

    Cannot find name 'Missing'.

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

    El compilador buscó este nombre en todos los ámbitos que ve y no encontró nada. Suele ser una errata, un tipo sin importar, o un valor usado donde corresponde un tipo.

    Reproducción

    type A = Missing

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

    Por qué lo dice el compilador

    Los tipos y los valores viven en espacios de nombres separados, y este error suele ser la costura entre ambos. Un `const` llamado `config` no es un tipo llamado `config`, y pedir uno donde existe el otro produce exactamente este mensaje — por eso el arreglo a veces no es «defínelo» sino «pide su tipo».

    Arreglos

    1. 01
      type Missing = string
      
      type A = Missing

      Defínelo, si de verdad todavía no existe.

    2. 02
      const config = { retries: 3 }
      
      type A = typeof config

      O cruza entre los espacios de nombres con `typeof`. El nombre existía desde el principio — como valor — y `typeof` es cómo se pide el tipo de uno.

    Conclusión

    Antes de definir el nombre que falta, comprueba si ya existe al otro lado de la división tipo/valor. `typeof` la cruza en un sentido y `keyof` recorre lo que encuentres allí.

    Adónde ir después

    Errores