Saltar al contenido
TS2749

    ↑↓ mover · ⏎ abrir · esc cerrar

    TS2749

    Valor usado como tipo

    'widget' refers to a value, but is being used as a type here. Did you mean 'typeof widget'?

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

    Se escribió una variable de ejecución en el espacio de tipos; usa `typeof` para obtener el tipo de ese valor.

    Reproducción

    const widget = { id: 1 }
    
    type Copy = widget

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

    Por qué lo dice el compilador

    Los nombres no pasan automáticamente del espacio de valores al de tipos. La consulta de tipo `typeof` es el puente explícito: pide al comprobador capturar el tipo estático de un valor existente sin ejecutar el operador de JavaScript.

    Arreglos

    1. 01
      const widget = { id: 1 }
      
      type Copy = typeof widget

      Usa una consulta de tipo cuando el valor deba ser la fuente de verdad.

    2. 02
      type Widget = { id: number }
      
      const widget: Widget = { id: 1 }

      Declara primero el tipo cuando el contrato deba regir varios valores.

    Conclusión

    Usa `typeof valor` en una posición de tipo; el nombre del valor por sí solo sigue siendo una expresión de ejecución.

    Adónde ir después

    Errores