TS2351
La expresión no se puede construir
This expression is not constructable.Las palabras del propio compilador. Sin traducir — es la cadena que pegaste en el buscador.
El valor después de `new` no tiene firma de constructor, así que no puede crear una instancia.
Reproducción
const value = {}
new value()La compilación afirma que esto emite exactamente este código.
Por qué lo dice el compilador
`new` requiere una clase o función constructora cuyo tipo describa la instancia creada. Un objeto ordinario ya es un valor; no es una receta para producir otro.
Arreglos
- 01
class Value { readonly ok = true } const value = new Value()Usa una clase cuando los llamantes deban construir instancias distintas.
- 02
const makeValue = () => ({ ok: true }) const value = makeValue()
Usa una fábrica sin `new` cuando baste con un objeto normal.
Conclusión
Una firma de constructor describe lo que puede hacer `new`. Si el tipo no tiene ninguna, se importó el valor equivocado o `new` no corresponde ahí.
