TS2693
Tipo usado como valor en ejecución
'User' only refers to a type, but is being used as a value here.Las palabras del propio compilador. Sin traducir — es la cadena que pegaste en el buscador.
Se hizo referencia a un alias en el espacio de valores, pero los alias se borran del JavaScript emitido.
Reproducción
type User = { id: string } const Ctor = User
La compilación afirma que esto emite exactamente este código.
Por qué lo dice el compilador
TypeScript tiene espacios paralelos de tipos y valores. Las declaraciones `type` e `interface` solo existen durante la comprobación; el código ejecutable necesita una clase, función, objeto u otro valor real de JavaScript.
Arreglos
- 01
type User = { id: string } const user: User = { id: 'u1' }
Usa el alias en una posición de tipo y proporciona por separado un valor real.
- 02
class User { constructor(readonly id: string) {} } const user = new User('u1')Usa una clase cuando un nombre deba describir tanto instancias como un constructor en ejecución.
Conclusión
Pregúntate si la posición actual sobrevive en JavaScript. Si es así, una declaración solo de tipo no puede ocuparla.
