我正在关注Ionic(使用Angular 2)应用程序的一些示例。 所有类的构造函数都有:
export class UserService {
constructor(http: Http) {
this.http = http;
}
}
但编译器输出此错误:
Unexpected token (14:17)
12 | }
13 |
> 14 | constructor(http: Http)
at Parser.pp.raise (/home/cbenseler/dev/apps/expressoapp/node_modules/babylon/index.js:1425:13)
这可能与我的应用程序(使用babel和webpack)的设置有关,但我找不到问题所在。
webpack.config.js文件包含:
module: {
loaders: [
{
test: /\.js$/,
loader: 'babel',
query: {
presets: ['es2015'],
plugins: ['transform-decorators-legacy']
},
include: path.resolve('app'),
exclude: /node_modules/
},
{
test: /\.js$/,
include: path.resolve('node_modules/angular2'),
loader: 'strip-sourcemap'
}
],
noParse: [
/es6-shim/,
/reflect-metadata/,
/zone\.js(\/|\\)dist(\/|\\)zone-microtask/
]
}
任何人都有任何想法?
答案 0 :(得分:1)
我会看到一件可能会遗漏的事情:
您忘记导入Http
类,因此编译器无法解析它:
import {Http} from 'angular2/http';
修改强>
如果仅使用ES6(似乎是这种情况),则可以在参数级别使用type。要注入这种情况,您需要使用这种方法:
@Injectable()
export class UserService {
constructor(http) {
this.http = http;
}
static get parameters() {
return [[Http]];
}
}
有关详细信息,请参阅以下链接: