Angular Typescript-代码无法从错误TS1128生成:预期声明或语句,但在提供代码时按预期运行

Angular Typescript-代码无法从错误TS1128生成:预期声明或语句,但在提供代码时按预期运行,angular,npm,Angular,Npm,我正在开发一个Angular2项目,我创建了一个类作为我的主要组件类: import { Component, OnInit} from '@angular/core'; import { submitService } from './Common-functions/submit.service'; @Component({ selector: 'my-app', template: `htmlCode` }) export class AppComponent implements

我正在开发一个Angular2项目,我创建了一个类作为我的主要组件类:

import { Component, OnInit} from '@angular/core';

import { submitService } from './Common-functions/submit.service';

@Component({
selector: 'my-app',
template: `htmlCode`

})
export class AppComponent implements OnInit{ 
  hideTable = true;
  lengthOfRecords = 0;
  lowerLimit = 0;
  upperLimit = 5;
  prevButtonDisabled = true;
  nextButtonDisabled = false;

  //User inputs

constructor(private sService:submitService) { }

ngOnInit() {
    public submitToJSON() {

         //SumbitJSON Object
            var submitJSON = {
                //inputData 
                     };

            this.sService.POST(submitJSON);
     }


   public returnDetails() {

    this.listOfIDs = {//ListData};

            this.hideTable = false;
        var keys = Object.keys(this.listOfIDs);
            var len = keys.length;
            this.lengthOfRecords = len;
        }

    public prev() {
            if(this.lowerLimit <= 0) {
                ;
                }
            else {
                this.lowerLimit = this.lowerLimit - 6;
                this.upperLimit = this.upperLimit - 5;
                this.nextButtonDisabled = false;
                if(this.lowerLimit <= 0) {
                    this.prevButtonDisabled = true;
                    }
                }
            }
   public next() {
            if(this.upperLimit >= this.lengthOfRecords) {
                ;
                }
            else {
                this.lowerLimit = this.lowerLimit + 6;
                this.upperLimit = this.upperLimit + 5;
                this.prevButtonDisabled = false;
                if(this.upperLimit >= this.lengthOfRecords) {
                    this.nextButtonDisabled = true;
                    }
                }
            }

 getEntries(obj, from, to) {
        if(obj!=null) {
            var entries = [];
            for(var key in obj) {
                // extract index after `app`
                var index = key.substring(3);
                if(index >= from && index <= to) {
                    entries.push( obj[key]);
                }
            }
            return entries;
            }

 }

}
在下面的代码行中

---> public submitToJSON() {

     //SumbitJSON Object
        var submitJSON = {
            //inputData };

        this.sService.POST(submitJSON);
 }
在代码的最后一行。我一整天都在修改代码,只有删除与OnInit相关的代码才能修复它。我做错了什么?我是Angular2的新手,所以任何信息都会有帮助。我也在运行tsc 3.1版

您的评论

//inputData };
我想大括号应该在下一行

//inputData
};
编辑

ngOnInit函数不应包含其他函数:

import { Component, OnInit} from '@angular/core';

import { submitService } from './Common-functions/submit.service';

@Component({
selector: 'my-app',
template: `htmlCode`

})
export class AppComponent implements OnInit{ 
  hideTable = true;
  lengthOfRecords = 0;
  lowerLimit = 0;
  upperLimit = 5;
  prevButtonDisabled = true;
  nextButtonDisabled = false;

  //User inputs

constructor(private sService:submitService) { }

ngOnInit() {
    // Add any initialization code here
}

submitToJSON() {

     //SumbitJSON Object
        var submitJSON = {
            //inputData 
                 };

        this.sService.POST(submitJSON);
 }


returnDetails() {

this.listOfIDs = {//ListData};

        this.hideTable = false;
    var keys = Object.keys(this.listOfIDs);
        var len = keys.length;
        this.lengthOfRecords = len;
    }

prev() {
        if(this.lowerLimit <= 0) {
            ;
            }
        else {
            this.lowerLimit = this.lowerLimit - 6;
            this.upperLimit = this.upperLimit - 5;
            this.nextButtonDisabled = false;
            if(this.lowerLimit <= 0) {
                this.prevButtonDisabled = true;
                }
            }
        }
next() {
        if(this.upperLimit >= this.lengthOfRecords) {
            ;
            }
        else {
            this.lowerLimit = this.lowerLimit + 6;
            this.upperLimit = this.upperLimit + 5;
            this.prevButtonDisabled = false;
            if(this.upperLimit >= this.lengthOfRecords) {
                this.nextButtonDisabled = true;
                }
            }
        }

 getEntries(obj, from, to) {
    if(obj!=null) {
        var entries = [];
        for(var key in obj) {
            // extract index after `app`
            var index = key.substring(3);
            if(index >= from && index <= to) {
                entries.push( obj[key]);
            }
        }
        return entries;
        }



}
从'@angular/core'导入{Component,OnInit};
从“./Common functions/submit.service”导入{submitService};
@组成部分({
选择器:“我的应用程序”,
模板:`htmlCode`
})
导出类AppComponent实现OnInit{
隐藏=真实;
长度=0;
lowerLimit=0;
上限=5;
prevButtonDisabled=真;
nextButtonDisabled=错误;
//用户输入
构造函数(私有sService:submitService){}
恩戈尼尼特(){
//在此处添加任何初始化代码
}
submitToJSON(){
//SumbitJSON对象
var submitJSON={
//输入数据
};
this.sService.POST(submitJSON);
}
返回详细信息(){
this.listOfIDs={//ListData};
this.hideTable=false;
var keys=Object.keys(this.listOfIDs);
var len=keys.length;
this.lengthOfRecords=len;
}
prev(){
if(this.lowerLimit=this.lengthOfRecords){
this.nextButtonDisabled=true;
}
}
}
getEntries(对象、发件人、收件人){
如果(obj!=null){
var分录=[];
for(obj中的var键){
//在'app'之后提取索引`
var指数=关键子串(3);

如果(index>=from&&index在我的例子中,只是需要重新编译,那么项目就出现了相同的错误,并且在关闭IntelliJ并重新打开后就消失了。我一直在修改带有错误的文件。就好像它不知怎的在查看旧版本一样。

在Visual Studio代码中,我不得不终止npm start 然后再跑

npm run start

嗨!对不起,我在我发布到StackOverflow时这么做了,只是为了不太详细。代码在下一行有一个花括号。我会修复它ngOnInit函数不应该包含其他函数。我已经更新了我的回复,以包括我认为你的ngOnInit应该是什么。谢谢,这确实有帮助!我想我没有完全理解Onniit教程。但是,当我现在尝试构建代码时,我收到消息“error TS2346:提供的参数与调用目标的任何签名都不匹配”。这是否意味着我没有正确创建submitService类的对象?事实上,我发现了这一点,这是一个愚蠢的错误!我将此标记为答案,因为它解决了我的问题:)我的WebStorm在重新打开后也得到了修复。WebStorm(也是Jetbrains产品)上的Thanksame东西。没想到重新启动会起作用,但它做到了!谢谢:)
npm run start