首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >函数声明错误-意外令牌。需要构造函数、方法、访问器或属性。

函数声明错误-意外令牌。需要构造函数、方法、访问器或属性。
EN

Stack Overflow用户
提问于 2017-02-27 17:05:37
回答 1查看 1.1K关注 0票数 1

我在我的angular2应用程序中得到了以下问题。

意外的记号。需要构造函数、方法、访问器或属性。

对于实现,我遵循了以下项目。

https://github.com/Vintharas/angular2-step-by-step-06-consuming-real-data-with-http/blob/master/app/people.service.ts

我不知道为什么我在代码中超出了错误。我根据上面github链接中可用的代码编码。下面的屏幕截图将显示错误出现的位置。

如您所见,关键字函数已被IDE标记为红色。在我的代码中我真的看不到语法问题。(我来自Java背景,这是我的第一个角度应用程序)

请告诉我这里出了什么问题,以及如何纠正。

这是我的完整代码:

代码语言:javascript
复制
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);
    }

}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-02-28 02:12:54

在TypeScript中,将函数声明为方法内部、类外或类属性(以及其他一些地方),而不是类的直接子级。类的直接子类必须是构造函数、方法、访问器或属性。

下面是一个示例;编译器允许所有以下函数声明。

代码语言:javascript
复制
class SomeClass {

    foo = function() { };

    someMethod() {

        function bar() { }

    }
}

function baz() {  }

它值得摆弄TypeScript游戏通过官方JavaScript到TypeScript教程的工作

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42491602

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档