在我的ionic3应用程序中,我有以下几段代码:
@Injectable() // I tried also without this @Injectable and got the same error
export class M_someClass {
constructor () {
}
method1 () { console.log("method1 used") }
}
@Injectable()
export class M_otherClass extends M_someClass {
callMethod1 () {
this.method1()
}
}
当我尝试运行我的应用时,出现以下错误:TypeError: Object.setPrototypeOf: expected an object or null, got undefined
我搜索了这个,发现this question似乎与同一个问题有关。如果我理解正确,from this issue page,似乎已在2.4.0或2.4.1版本的打字稿中修复了该错误。
我检查了我的package.json,在“devDependencies”中我得到了"typescript": "~2.4.2"
所以我不明白为什么我仍然有这个错误。
我是否误解了这个错误可能无法在打字稿2.4.2中修复?如果是,是否有任何解决方法使我的代码工作?
或者那个错误可能来自其他地方?
答案 0 :(得分:0)
只需改变课程安排:
import { Component } from '@angular/core';
class M_otherClass {
constructor(){
}
test(){
console.log('test')
}
}
@Component({
selector: 'my-app',
templateUrl: './app.component.html',
styleUrls: [ './app.component.css' ]
})
export class AppComponent extends M_otherClass {
constructor(){
super();
this.test();
}
}
检查此stackblitz
<强>更新强>:
好的,在 service.ts
中import { Injectable } from '@angular/core';
@Injectable()
class ParentService{
constructor(){}
get(){console.log('test')}
}
@Injectable()
class ChildService extends ParentService{
constructor (){
super();
}
}
export {
ChildService,
ParentService
}
使用服务的组件中的:
import { Component } from '@angular/core';
import { ChildService } from './app.service.ts'
@Component({
selector: 'my-app',
templateUrl: './app.component.html',
styleUrls: [ './app.component.css' ]
})
export class AppComponent {
constructor(public childService:ChildService){
this.childService.get();
}
}
app.module.ts :中的
import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { FormsModule } from '@angular/forms';
import { AppComponent} from './app.component';
import { HelloComponent } from './hello.component';
import { ChildService, ParentService } from './app.service.ts'
@NgModule({
imports: [ BrowserModule, FormsModule ],
declarations: [ AppComponent, HelloComponent ],
bootstrap: [ AppComponent ],
providers: [ ChildService, ParentService]
})
export class AppModule { }
检查此工作stackblitz