Estoy tratando de probar mi solucionador de rutas y mientras lo probaba obtuve TypeError: ctor is not a constructor
y no tengo idea de por qué sucede mientras el tiempo de compilación de mecanografiado no tiene error.
TypeError: ctor is not a constructor
TypeError: ctor is not a constructor
at _createClass (http://localhost:9877/_karma_webpack_/vendor.bundle.js:42355:26)
at _createProviderInstance$1 (http://localhost:9877/_karma_webpack_/vendor.bundle.js:42330:26)
at resolveNgModuleDep (http://localhost:9877/_karma_webpack_/vendor.bundle.js:42315:17)
at _createClass (http://localhost:9877/_karma_webpack_/vendor.bundle.js:42362:26)
at _createProviderInstance$1 (http://localhost:9877/_karma_webpack_/vendor.bundle.js:42330:26)
at resolveNgModuleDep (http://localhost:9877/_karma_webpack_/vendor.bundle.js:42315:17)
at NgModuleRef_.webpackJsonp../node_modules/@angular/core/@angular/core.es5.js.NgModuleRef_.get (http://localhost:9877/_karma_webpack_/vendor.bundle.js:43401:16)
at TestBed.webpackJsonp../node_modules/@angular/core/@angular/core/testing.es5.js.TestBed.get (http://localhost:9877/_karma_webpack_/vendor.bundle.js:48412:47)
at http://localhost:9877/_karma_webpack_/vendor.bundle.js:48418:61
at Array.map (native)
angular
karma-runner
angular-routing
Aniruddha Das
fuente
fuente
Respuestas:
Esto puede ser un error en las declaraciones de los proveedores.
Cuando intenta burlarse de un proveedor y usa useClass en lugar de useValue, se activa el error "TypeError: ctor no es un constructor".
Aquí hay un ejemplo que dispara el error:
La declaración correcta es:
fuente
{ provide: httpTestingControllerToken, useClass: HttpTestingController },
, donde declaréconst httpTestingControllerToken = new InjectionToken<HttpTestingController>('httpTestingControllerToken');
... esto es cuando intento reemplazar el obsoletoTestBed.get
. ¿Algunas ideas?Recibí exactamente el mismo mensaje al crear mi aplicación con AOT.
Mi problema no estaba relacionado con los proveedores como sugirió @abahet.
Fue porque configuré una nueva biblioteca que no era compatible con AOT (y tampoco tenía ningún proveedor). La biblioteca en cuestión tuvo que exportar (estoy hablando de la exportación de TypeScript, no la del módulo Angular) lo que se importó en el módulo (en este caso, un componente y una tubería).
fuente
Tuve este problema con Angular Universal en combinación con Firebase en un proyecto de Firebase Universal Starter. Casi había perdido la esperanza ya que todas las posibles correcciones en el desbordamiento de pila no ayudaron. Entonces hice lo siguiente:
Nunca descubrí qué paquete causó el error, pero una forma de averiguarlo es crear un MockAppModule donde eliminas los módulos uno por uno. Eventualmente encontrarás al que tiene el problema. Pero en mi caso tuve suerte, supongo que debido a que uno de los paquetes con errores se actualizó o algo así.
fuente
Tercera posibilidad para ti, tenía un módulo que contenía otros módulos y no exporté (en TypeScript) los otros módulos.
fuente
Yo también tuve este problema con AOT habilitado Agregué un nuevo archivo de servicio. Reinicié el compilador y el problema se resolvió.
fuente