我在阅读更多关于typescript和ES7中的装饰器。我尝试了这个简单的代码:
function decorator(...args) {
console.log(args);
}
//@decorator
class foo {
constructor() {}
@decorator
method() {}
}
let bar = new foo();
bar.method();这是我在控制台中得到的:
$ npm install -g typescript@2.1.15
$ npm install -g @types/node
$ tsc --experimentalDecorators file.ts
$ node file.js
[ foo { method: [Function] }, 'method' ]只有两个论点。
但是,如果我在typescript操场中执行此命令,则会得到以下结果
Array[3]其中Arra和Array2是对象,Array1是字符串。
这怎么可能呢?此外,我应该如何用实验性的装饰器正确地编译typescript?
我向你致以最诚意的问候。
发布于 2017-01-25 12:27:53
解决了。根据https://www.typescriptlang.org/docs/handbook/compiler-options.html的说法,默认目标是ES3。
将目标设置为ES5可以解决这个问题:
$ tsc --experimentalDecorators -t 'es5' t.ts && node t.js
[ foo { method: [Function] },
'method',
{ value: [Function],
writable: true,
enumerable: true,
configurable: true } ]致以问候。
https://stackoverflow.com/questions/41843317
复制相似问题