为什么此代码不起作用?
我有以下app.ts
var a = 1;
var b = 3;
console.log(`Before a = ${a}, b = ${b}`);
[a, b] = [b, a];
console.log(`After a = ${a}, b = ${b}`);
当我尝试用
运行它时node app.ts
我有下一个:
[a, b] = [b, a];
^
ReferenceError: Invalid left-hand side in assignment
at exports.runInThisContext (vm.js:53:16)
at Module._compile (module.js:373:25)
at Object.Module._extensions..js (module.js:416:10)
at Module.load (module.js:343:32)
at Function.Module._load (module.js:300:12)
at Function.Module.runMain (module.js:441:10)
at startup (node.js:139:18)
at node.js:974:3
但我希望:
Before a = 1, b = 2
After a = 2, b = 1
TypeScript版本1.8.10
答案 0 :(得分:5)
您需要先编译代码。
tsc app.ts
然后用
运行它node app.js
答案 1 :(得分:3)
您正在使用NodeJS运行代码。您没有将它从TypeScript转换为JavaScript,因此您尝试将TypeScript视为JavaScript。
这可能没问题,因为TypeScript是JavaScript的超集。在这种特殊情况下,您的代码也恰好是有效的JS。
您尝试使用的destructuring assignments是ES6功能,仅在6.5以后的NodeJS中受支持。
您需要将NodeJS升级到更新版本。
或者,使用tsc app.ts
答案 2 :(得分:1)
为了让自己更轻松并运行一个命令,您可以使用 ts-node 库。安装到您的项目后,您只需运行以下命令:
TaskletStep