14

Coffee-Scriptを使用してこれを行うのは非常に簡単です。

var coffee = require('coffee-script');
coffee.compile("a = 1");
//=> '(function() {\n  var a;\n\n  a = 1;\n\n}).call(this);\n'

typescriptでこれを行う方法はありますか?

編集:codeplexにも投稿されています

4

6 に答える 6

16

最近はもっと簡単な解決策があるようですが、次のことができます。

let ts = require('typescript');
let source = ts.transpileModule('class Test {}', {}).outputText;

これにより、次のようになります。

"use strict";
var Test = (function () {
    function Test() {
    }
    return Test;
}());
于 2015-12-04T12:49:18.237 に答える
8

TypeScriptのNPMモジュールはパブリックインターフェイスをエクスポートしないため、現在これを行う唯一の方法はtscプロセスを実行することです。

var exec = require('child_process').exec;

var child = exec('tsc main.ts',
                function(error, stdout, stderr) {
                    console.log('stdout: ' + stdout);
                    console.log('stderr: ' + stderr);
                    if (error !== null) {
                      console.log('exec error: ' + error);
                    }
                });

TypeScriptモジュールのパブリックインターフェイスを要求する問題が発生しました。

于 2012-10-04T15:16:21.757 に答える
8

better-requireは、これを達成するのに役立ちます。

それはあなたにrequire()typescriptファイル(事前コンパイルは必要ありません)と他のたくさんのファイルフォーマット(coffeescript、clojurescript、yaml、xmlなど)を可能にします

require('better-require')();
var myModule = require('./mymodule.ts');

開示:私はよりよく書いた-require。

于 2012-11-01T14:55:05.023 に答える
6

niutechによるこのgithubプロジェクトを確認してください。ブラウザで、TypeScriptコードをその場でJSコードに変換できますが、node.jsで機能するように簡単に変更できると思います。

ライブのFirebugにインスパイアされたコードエディタでTypeScriptをサポートする可能性を調査しているときに、それを見つけました。

于 2012-10-07T06:44:51.953 に答える
4

質問に直接答えることはありませんが、「ノードから直接TypeScriptを実行する」をグーグルで検索すると、このStackOverflowページが表示されるので、ts-nodeでこれを実行できることを追加する必要があります:https ://github.com/TypeStrong /ts-ノード

于 2016-01-15T17:16:57.827 に答える
0

TypeScriptトランスパイラーAPIを使用して.tsファイルからJavaScriptソースを生成する方法に関する公式ドキュメント:

https://github.com/Microsoft/TypeScript/wiki/Using-the-Compiler-API#user-content-transpiling-a-single-file

TypeScriptコンパイラAPIを使用して.tsファイルまたはTSプロジェクトをコンパイルする方法に関する公式ドキュメント

https://github.com/Microsoft/TypeScript/wiki/Using-the-Compiler-API#user-content-a-minimal-compiler

(後者は元の質問に答えませんが、ASTにアクセス/変更してからオブジェクト言語にトランスパイルするのが非常に一般的であるため、便利です)

于 2018-05-09T05:52:21.903 に答える