我在angular2应用程序中遇到以下问题。
意外的令牌。构造函数,方法,访问器或属性是 预期
对于我在项目后面的实施。
我不确定为什么我的代码中出现上述错误。我根据上面github链接中提供的代码编码。屏幕截图下方将显示错误出现的位置。
正如您所看到的,IDE的关键字功能已用红色加下划线。我真的在代码中看不到语法问题。(我来自Java背景,这是我的第一个Angular应用程序)
请告诉我这里有什么问题以及如何纠正错误。
这是我的完整代码:
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);
}
}
答案 0 :(得分:2)
在TypeScript中,声明方法内部的函数,类外的函数或类属性(以及其他一些地方),但不是类的直接子元素。类的直接子节点必须是构造函数,方法,访问器或属性。
这是一个例子;编译器允许以下所有函数声明。
class SomeClass {
foo = function() { };
someMethod() {
function bar() { }
}
}
function baz() { }
值得fiddling around with TypeScript play和working thru the offical JavaScript to TypeScript tutorial。