Невозможно скомпилировать простой пример узла TypeScript-ts

Я пытаюсь изучить https://github.com/TypeStrong/ts-node. Я написал два файла в качестве упрощенного примера. Они оба находятся в одном каталоге, который в настоящее время не находится в той же папке, что и package.json.

/package.json
/src/build-lib/run-ts.js
/src/build-lib/Test.ts

run-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

Я ожидал увидеть на консоли «Тестовое сообщение».


person Juan Mendes    schedule 14.03.2017    source источник


Ответы (2)


Похоже, у вас есть файл JavaScript (run-ts.js), который сам регистрирует TypeScript для перехвата любых выполненных require вызовов.

Вы пробовали запустить этот файл только с node вместо ts-node?

person nickf    schedule 14.03.2017
comment
Это работает, когда я запускаю node. Я не совсем понимаю, в чем была проблема. Если вы вызываете ts-node, все файлы должны быть на TypeScript? Кстати, причина, по которой я использовал ts-node для запуска скрипта, заключалась в том, что изначально run-ts был файлом TypeScript, но мне нужно импортировать HandleBars, который не предоставляет определения TS, поэтому я изменил его на run-ts.js - person Juan Mendes; 15.03.2017

Для меня исправление заключалось в удалении ts-node и typescript из package.json, а затем:

npm install ts-node --save-dev
npm install -g typescript --save-dev
person Mark Evans    schedule 04.10.2017