我在我的angular2应用程序中得到了以下问题。
意外的记号。需要构造函数、方法、访问器或属性。
对于实现,我遵循了以下项目。
我不知道为什么我在代码中超出了错误。我根据上面github链接中可用的代码编码。下面的屏幕截图将显示错误出现的位置。

如您所见,关键字函数已被IDE标记为红色。在我的代码中我真的看不到语法问题。(我来自Java背景,这是我的第一个角度应用程序)
请告诉我这里出了什么问题,以及如何纠正。
这是我的完整代码:
import { Http, Response, Headers } from '@angular/http';
import { Injectable } from '@angular/core';
import { Tender } from './models/Tender';
import { Observable } from 'rxjs/Rx';
@Injectable()
export class TendersService {
private _endpointUrl: string = "http://127.0.0.1:8080/get-all";
constructor(private _http: Http) {
}
getAllTenders(): Observable<Tender[]> {
console.log("get all tenders in service");
let tenders = this._http
.get(this._endpointUrl)
.map(mapTenders)
.catch(handleError);
console.log('tenders.service.ts -> retrieved tenders = '+tenders);
return tenders;
}
function mapTenders(response: Response): Tender[] {
console.log('tender.service.ts -> mapTenders');
return response.json().map(toTender);
}
function toTender(r: any): Tender {
console.log('tender.service.ts -> toTender');
let tender = <Tender>({
id: r.id,
name: r.name,
description: r.description,
category: r.category,
district: r.district,
town: r.town,
imageUrls: r.imageUrls,
referenceNumber: r.referenceNumber,
addresses: r.addresses,
telNos: r.telNos,
dateTimePosted: r.dateTimePosted,
lastUpdateOn: r.lastUpdateOn
});
console.log('Parsed tender in service :', tender);
return tender;
}
function handleError(error: any) {
let errorMsg = error.message || `Yikes! There was was a problem with our hyperdrive device and we couldn't retrieve your data!`
console.error(errorMsg);
// throw an application level error
return Observable.throw(errorMsg);
}
}发布于 2017-02-28 02:12:54
在TypeScript中,将函数声明为方法内部、类外或类属性(以及其他一些地方),而不是类的直接子级。类的直接子类必须是构造函数、方法、访问器或属性。
下面是一个示例;编译器允许所有以下函数声明。
class SomeClass {
foo = function() { };
someMethod() {
function bar() { }
}
}
function baz() { }https://stackoverflow.com/questions/42491602
复制相似问题