test.ts
export class Test {
whatever(): Promise<any> {
return undefined;
}
}
尝试使用旧版本进行编译:
$ tsc --version
message TS6029: Version 1.4.1.0
$ tsc --target es6 --module commonjs test.ts
$ cat test.js
var Test = (function () {
function Test() {
}
Test.prototype.whatever = function () {
return undefined;
};
return Test;
})();
exports.Test = Test;
这很好。现在有了新版本:
$ ./node_modules/.bin/tsc --version
message TS6029: Version 1.5.0-beta
$ ./node_modules/.bin/tsc --target es6 --module commonjs test.ts
error TS1204: Cannot compile external modules into amd or commonjs when targeting es6 or higher.
为什么?我正在开发NodeJS应用程序,所以我必须使用commonjs。此外,我需要本机承诺,因此es6目标。
$ ./node_modules/.bin/tsc --target es5 --module commonjs test.ts
test.ts(2,14): error TS2304: Cannot find name 'Promise'.
答案 0 :(得分:3)
如果要编译支持ES6的目标,则应使用ES6模块导入,而不是commonjs或AMD。
import * as Promise from 'Promise';
如果您提供--module
,则在编译时删除--target ES6
标记。