Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/403.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 错误类型错误:无法读取属性';ngInjectableDef';未定义的_Javascript_Angular - Fatal编程技术网

Javascript 错误类型错误:无法读取属性';ngInjectableDef';未定义的

Javascript 错误类型错误:无法读取属性';ngInjectableDef';未定义的,javascript,angular,Javascript,Angular,我在下面有一个抽象类: import { Inject } from '@angular/core'; import { TestService } from '../test-service'; export abstract class DummyAbstract { constructor ( private testService: TestService ) { } abstract thisisimp(); } 我有一个孩子的

我在下面有一个抽象类:

import { Inject } from '@angular/core';
import { TestService } from '../test-service';

export abstract class DummyAbstract {

    constructor (
        private testService: TestService
    ) {

    }

    abstract thisisimp();
}
我有一个孩子的班级如下:

import { Injectable } from '@angular/core';
import { DummyAbstract } from './dummy-abstract';

@Injectable({
    providedIn: 'root'
})
export class ThisChild extends DummyAbstract {
    thisisimp() {
        return 'text';
    }
}
当我尝试在其他服务中加载子类时,问题就出现了

import { Injectable } from '@angular/core';
import { ThisChild } from './this-child';

@Injectable({
    providedIn: 'root'
})
export class SomeOtherService {    
    constructor(private thisChild: ThisChild) {

    }
}
它抛出以下错误

错误类型错误:无法读取未定义的属性“ngInjectableDef” 在ResolvingModuleDep(core.js:8353) 在NgModuleRef.push../node\u modules/@angular/core/fesm5/core.js.NgModuleRef.get (core.js:9057) 注入时(core.js:1403) at injectArgs(core.js:1437) 在core.js:1491 at_callFactory(core.js:8431) 在createProviderInstance(core.js:8389) 在resolveNgModuleDep(core.js:8364) 在NgModuleRef.push../node_modules/@angular/core/fesm5/core.js.NgModuleRef.get (core.js:9057) 注入时(core.js:1403)

角度相关性注入系统仅提取/解析相关性 对于编写了
可注入的
装饰器的类。你必须自己处理其他事情

DummyAbstract
构造函数具有
TestService
依赖项的构造函数,当您使用
ThisChild
提供程序进行扩展时,您尚未将
TestService
传递给
DummyAbstract
的构造函数。每当出现这种情况时,必须使用
super
方法将依赖项显式地传递给父类以调用基类构造函数

export class ThisChild extends DummyAbstract {
    constructor(testService: TestService) { // no private or public
       super(testService); //calling base class constructor with dependency.
    }
    thisisimp() {
        return 'text';
    }
}

由于这个问题没有太多的谷歌搜索结果,我将在这里提供我的解决方案(与这个问题无关,但有相同的错误消息)。 所以基本上我也遇到了这个问题: 错误类型错误:无法读取未定义的属性“ngInjectableDef” 在开始出现错误之前和之后,代码中没有任何更改。 我所要做的就是删除node_模块文件夹,刷新节点缓存并重新安装,然后它就开始工作了。
据我所知,这与一些角度材质的变化有关。

不要在内部使用模拟类对象 mockClassName=测试床(mockClassName): 使用实际导入的类对象,如下所示
mockClassName=TestBed(ClassName):

谢谢@DanielWaw,我的问题和你解释的完全一样。当我重新安装npm时,它就解决了。我刚刚重新启动了服务器,它对我很有效。我遇到了相同的错误--
(承诺中):TypeError:无法读取未定义TypeError的属性“ngInjectableDef”:无法读取getInjectableDe上未定义的属性“ngInjectableDef”…