【问题标题】:Unable to compile simple TypeScript node-ts example无法编译简单的 TypeScript node-ts 示例
【发布时间】:2017-08-05 11:43:17
【问题描述】:

我正在努力学习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

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

【问题讨论】:

    标签: node.js typescript ts-node


    【解决方案1】:

    您似乎有一个 JavaScript 文件 (run-ts.js),该文件本身正在注册 TypeScript 以拦截任何 require 调用。

    您是否尝试过仅使用 node 而不是 ts-node 运行该文件?

    【讨论】:

    • 运行节点时它确实有效。我不太明白问题出在哪里。如果你打电话给ts-node,所有的文件都必须是 TypeScript 吗?顺便说一句,我使用 ts-node 运行脚本的原因是因为最初 run-ts 是一个 TypeScript 文件,但是我必须导入不提供 TS 定义的 HandleBars,所以我将其更改为 run-ts.js
    【解决方案2】:

    我的解决方法是从package.json 中删除ts-nodetypescript,然后:

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

    【讨论】:

      猜你喜欢
      • 2012-07-26
      • 2017-03-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-06-20
      • 2018-12-29
      相关资源
      最近更新 更多