Node JS没有运行TypeScript文件

时间:2016-04-12 16:10:46

标签: node.js typescript

Node能够运行以下内容而不会出现错误(node hello-world.ts):

var f = () => {
    console.log('Hello World!');
};

f();

然而,当我尝试这个文件时:

interface Accountable {
    getIncome() : number;
}

我得到以下异常:

interface Accountable {
          ^^^^^^^^^^^

SyntaxError: Unexpected identifier
    at exports.runInThisContext (vm.js:53:16)
    at Module._compile (module.js:414:25)
    at Object.Module._extensions..js (module.js:442:10)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:311:12)
    at Function.Module.runMain (module.js:467:10)
    at startup (node.js:136:18)
    at node.js:963:3

我尝试将--target ES5ES2015添加到TSC设置页面,但没有效果。

2 个答案:

答案 0 :(得分:1)

将我的评论写成答案。

node.js没有对TypeScript的内置支持,也没有内置支持将TypeScript自动转换为普通Javascript。因此,在node.js中运行它们之前,必须首先转换TypeScript文件。

您的第一个代码示例有效,因为它是合法的ES6 Javascript语法,因此node.js可以直接运行它。

答案 1 :(得分:0)

我在使用VS Code和WebStorm时都遇到了相同的问题。 感谢cdbjorin,我可以通过更改Package.json文件中的一行来使其工作:

...
"name": "myProject",
"version": "0.0.0",
"private": true,
"scripts": {
  "start": "node ./myScript.ts"// <--
},
...

收件人:

"start": "ts-node ./myscript.ts"

或者在这种情况下,只需使用ts-node myScript.ts来运行它;

希望这会有所帮助