无法编译简单的TypeScript node-ts示例

时间:2017-03-14 22:35:28

标签: node.js typescript ts-node

我正在努力学习https://github.com/TypeStrong/ts-node。我写了两个文件作为一个简单的例子。它们都在同一目录中,该目录当前与package.json

不在同一文件夹中
/package.json
/src/build-lib/run-ts.js
/src/build-lib/Test.ts

运行ts.js

require('ts-node').register();
const Test = require('./Test.ts').Test; // Tried with and without .ts extension
const tester = new Test();
tester.log('Message');

Test.ts

export class Test {
    log(message: string) {
        console.log(`Test ${message}`);
    } 
}

我正在运行以下脚本:

ts-node src/build-scripts/gen-xml.js

我收到以下编译错误

/Users/jmendes/gitclient/vcd-ui/content/core/node_modules/ts-node/src/index.ts:319
      throw new TSError(formatDiagnostics(diagnosticList, cwd, ts, lineOffset))
            ^
TSError: ⨯ Unable to compile TypeScript
src/build-scripts/Test.ts (7,36): Parameter 'message' implicitly has an 'any' type. (7006)
    at getOutput (/Users/jmendes/gitclient/vcd-ui/content/core/node_modules/ts-node/src/index.ts:319:17)
    at /Users/jmendes/gitclient/vcd-ui/content/core/node_modules/ts-node/src/index.ts:350:18

我希望在控制台上看到“测试消息”。

2 个答案:

答案 0 :(得分:3)

看起来你有一个 JavaScript 文件(run-ts.js),它本身会注册TypeScript来拦截任何require次调用。

您是否尝试仅使用node代替ts-node运行该文件?

答案 1 :(得分:0)

我的修正方法是从ts-node删除typescriptpackage.json,然后:

npm install ts-node --save-dev
npm install -g typescript --save-dev