tsc · Compilación y tipos
El mensaje
error TS2339: Property 'user' does not exist on type 'Request'.
Qué significa
Ese tipo no declara esa propiedad. Aparece al añadir un campo que el tipo de la biblioteca no tiene (el clásico es colgar user del Request de Express), por una errata, o al leer una propiedad que solo existe en un miembro de una unión sin estrechar. Corregir el tipo para que coincida con la forma real es la respuesta, y en una unión, estrechar con 'x' in y o con un campo discriminante abre el acceso dentro de la rama. Silenciarlo con as any solo amordaza al compilador: ese punto aceptará también un nombre de propiedad mal escrito.
El arreglo
No hay un comando de una línea. La explicación dice qué revisar.
- Lo imprime
- tsc
- Compilación y tipos
- 10
Los errores de compilación son una herramienta que se niega antes de que nada se ejecute, así que no rompen nada en el momento en que aparecen, pero plantean dos preguntas: ¿arreglarás el tipo o la ruta para que coincidan con la forma real, o empujarás esa única línea con un as any o un comentario de supresión? Y es aquí donde las cosas que solo son ciertas en tu máquina —mayúsculas, extensiones y variables de entorno— se muestran por primera vez.
Cómo leer un mensaje de error
- Lee desde la primera línea. Cuanto más abajo, más son las tripas de la herramienta; la causa suele estar arriba.
- Si hay un archivo y un número de línea, empieza ahí: no el marco superior de la pila, sino la línea más alta que nombre un archivo tuyo.
- Busca el mensaje literal, pero quita antes tus rutas y nombres de variables: eso es lo que impide que la búsqueda coincida.
- La misma condición se redacta distinto según la versión. Si los resultados no cuadran, añade el número de versión.
- Antes de pegar un arreglo, comprueba qué descarta. Algunos no se pueden deshacer.
Preguntas frecuentes
Q. ¿Qué significa «error TS2339: Property 'user' does not exist on type 'Request'.»?
Ese tipo no declara esa propiedad. Aparece al añadir un campo que el tipo de la biblioteca no tiene (el clásico es colgar user del Request de Express), por una errata, o al leer una propiedad que solo existe en un miembro de una unión sin estrechar. Corregir el tipo para que coincida con la forma real es la respuesta, y en una unión, estrechar con 'x' in y o con un campo discriminante abre el acceso dentro de la rama. Silenciarlo con as any solo amordaza al compilador: ese punto aceptará también un nombre de propiedad mal escrito.
Q. ¿Cómo se arregla?
No hay comando de una línea. La explicación de arriba dice qué revisar.
Q. ¿Qué herramienta lo imprime?
tsc. Está en Compilación y tipos y el mensaje tiene 10 palabras.