角度2错误TS1146:预期的声明

时间:2017-05-04 10:17:00

标签: angular typescript

我是Angular2的新秀,如果这是一个明显的错误,请原谅我。从angular.io种子文件开始,我一直在开发一个简单的应用程序,以便第一次使用Angular Services。该应用似乎运行良好,直到我遇到一些错误导致Chrome和npm服务器崩溃。当我尝试重新启动服务器时(' npm start')我收到以下构建错误 -

src/app/cost-data.service.ts(5,12): error TS1146: Declaration expected.

npm ERR! Darwin 16.5.0
npm ERR! argv "/usr/local/bin/node" "/usr/local/bin/npm" "run" "build"
npm ERR! node v7.9.0
npm ERR! npm  v4.2.0
npm ERR! code ELIFECYCLE
npm ERR! errno 2
npm ERR! angular-quickstart@1.0.0 build: `tsc -p src/`
npm ERR! Exit status 2

cost-data.service.ts文件是:

import { Injectable } from '@angular/core';

import { CostData } from './cost-model';

@Injectable;

export class CostDataService {

costData = new CostData;

}

如果有人能告诉我构建错误的原因,我将不胜感激。

2 个答案:

答案 0 :(得分:3)

$SQL = "SELECT p.*, c.*, p.id id
          FROM property p
          JOIN clients c
            ON p.user_id = c.id
         WHERE public = '1'
           AND p.cat1 IN ($cat)
            OR p.cat2 IN ($cat)
            OR p.cat3 IN ($cat)
            OR p.cat4 IN ($cat)
            OR p.cat5 IN ($cat)
            OR p.cat6 IN ($cat)
         ORDER BY p.id DESC";

需要

@Injectable;

所以你的代码应该是这样的:

@Injectable()

我建议您参考官方的Angular文档和教程:https://angular.io/docs/ts/latest/tutorial/toh-pt4.html

答案 1 :(得分:0)

@Injectable 是Angular提供的注释,所有注释始终以()

结尾

所以正确的代码附在

下面
import { Injectable } from '@angular/core';

import { CostData } from './cost-model';

@Injectable()
export class CostDataService {

   costData = new CostData;

}