Вопрос:

Преобразование TypeScript в JavaScript

javascript typescript

36783 просмотра

9 ответа

2543 Репутация автора

Мне интересно, как можно преобразовать TypeScript в JavaScript кроссплатформенным способом. Я знаю о доступности диспетчера пакетов узлов для машинописного текста , но есть ли другие альтернативы, которые можно использовать на стороне сервера?

Автор: Alex Objelean Источник Размещён: 01.10.2012 06:16

Ответы (9)


29 плюса

621 Репутация автора

Компилятор TypeScript встроен в TypeScript и, следовательно, доступен в виде файла JS ( tsc.js), который может быть запущен с использованием практически любой ES3-совместимой реализации VM или JS.

Тем не менее, текущая инфраструктура файлового ввода-вывода компилятора поддерживает только файловые API-интерфейсы Node и Windows Scripting Host. Если вы хотите порекомендовать поддержку другой среды, не стесняйтесь обращаться к команде на нашем сайте GitHub (ранее CodePlex )

Автор: Joe Pamer Размещён: 01.10.2012 06:36

5 плюса

101319 Репутация автора

Конкретно, на сервере (при условии, что на вашем сервере есть Node.js), вы просто запустите:

node path/to/tsc.js yourFile1.ts yourFile2.ts [etc]

Вы можете запустить эту команду без ввода имени файла, чтобы увидеть справку командной строки для tsc.js.

Автор: Ryan Cavanaugh Размещён: 01.10.2012 10:39

2 плюса

3400 Репутация автора

Компиляция ts -> js: node доступна для всех распространенных платформ, поэтому я не понимаю, почему вы хотите иметь tsc.java, когда у вас уже есть tsc.js. Установка узла не имеет большого значения. На самом деле это проще, чем на Java.

Получив файл proj.js, вы можете скопировать его на любую платформу развертывания, которую вы хотите использовать.

С моей точки зрения, JavaScript - или, точнее, ECMAScript, является альтернативой Java. Поэтому я счастлив, что мне не нужно спорить JVM и т. Д., Чтобы использовать инструмент. Но если вы предпочитаете Java, то зачем вообще беспокоиться о JS?

Автор: CyberFonic Размещён: 02.10.2012 12:12

1 плюс

348 Репутация автора

Трюк SublimeText2 Вы можете перенести машинописный текст в javascript напрямую из SublimeText2 (вам нужен узел):

Создайте Typescript.sublime-buildфайл /Sublime Text 2/Packages/Userс этим содержимым:

{
"cmd": ["tsc", "$file"],
"selector" : "source.ts",
"path": "/usr/local/bin:$PATH"
}

тогда, теперь, вы можете перенести свой код с помощью Ctrl + B или CMD + B

Автор: k33g_org Размещён: 02.10.2012 06:46

3 плюса

355 Репутация автора

Если вам нужно ориентироваться на Java, вы можете запустить tsc.js с движком Rhino как часть процесса сборки.

Автор: Christopher Cook Размещён: 02.10.2012 11:34

1 плюс

147 Репутация автора

Я поиграл с этим и могу скомпилировать TypeScript с помощью JavaScript с помощью следующего кода:

<script src=typescript.js></script>

<script>

var scriptText = ""
        + "/// <reference path=\"test.ts\"/>" + "\r\n"
        + "class Car {"
        + "     constructor (private name: string) { } "
        + "     getName() { "
        + "         var juice = new Juice();"
        + "         return name; "
        + "     } "
        + "} "
        + "var car = new Car('Subaru Impreza');"
        + "console.log(car.getName());";





var TextWriter = function () { };

TextWriter.prototype = {
collected: '',

Write: function (sc) {
    this.collected += sc;
},
WriteLine: function(sc) {
    this.collected += sc + '\n';
},
toString: function() {
    return this.collected;
}
};

var output = new TextWriter();
var tsc = new TypeScript.TypeScriptCompiler(output);

var script = tsc.addUnit(scriptText, "");

tsc.emit();

console.log(output.toString());

</script>

Это не совсем идеально, хотя. Я пытаюсь запустить что-то, чтобы я мог преобразовать TypeScript в JS в C # (используя Javascript .NET), но у меня переполняется стек при вызове ts.addUnit

Автор: eoleary Размещён: 02.10.2012 05:48

16 плюса

27485 Репутация автора

Решение

Короткая версия: используйте Node, если можете. В наше время это становится неизбежным.

Возможно, это не тот ответ, который вам нужен, но, как все уже упоминали, компилятор - это файл JS, поэтому ваши параметры - это варианты выполнения файла JS.

В Windows есть 2 очевидных: Node и Windows Script Host.

Вы уже знаете об узле, другой вариант - это компонент, который поставляется со всеми версиями Windows (я думаю), вы можете сделать это так:

cscript path/to/tsc.js source-file.ts

Вы можете увидеть все параметры компилятора просто:

cscript path/to/tsc.js

В Linux я предполагаю, что вы должны использовать (в дополнение к узлу):

  • V8 автономный корпус, заменить nodeили cscriptсv8-shell
  • ExecJS https://github.com/sstephenson/execjs
  • Любой другой бегун JS, доступный на выбранной платформе (другой ответ упоминал Rhino, например)

Обновление. Другой ответ предполагает, что API-интерфейс компилятора совместим только с узлом и Windows Script Host (инструмент cscript), поэтому, если все правильно, то в Linux вам понадобится Node для компиляции TypeScript.

Если вы ищете что-то подобное apt get tsc(или что- то вроде менеджеров пакетов Linux / Mac), я думаю, что нет.

Я помню, как где-то читал, что ввод / вывод оптимизирован для Node и Windows Script Host, поэтому, если у вас есть проблемы с опциями, вы, вероятно, в конечном итоге получите Node, если будете искать независимость от платформы.

Обновление: еще один ответ подтверждает то же самое о совместимости.

Автор: Meligy Размещён: 03.10.2012 03:23

3 плюса

13367 Репутация автора

У меня есть проект, который компилирует Typescript в Javascript на Java:

https://github.com/martypitt/typescript4j

Как обсуждалось в других ответах, это использует Rhino, поэтому не зависит от npmили node.

Вот пример:

// Instantiate the compiler:
TypescriptCompiler compiler = new TypescriptCompiler();

// Compile a string:
String output = compiler.compile("class Greeter { greeting: string; }");

// Or, compile and output to a file:
compiler.compile(new File("example.ts"), new File('output.js'));

Я использую его в другом проекте - «Bakehouse» для оперативной компиляции ресурсов машинописи в среде Spring.

Автор: Marty Pitt Размещён: 17.01.2013 07:35

1 плюс

6640 Репутация автора

Вот что сработало для меня:

Сначала установили typescript модуль узла >> npm install -g typescript. Это дает утилиту командной строки tsc.

Следующий, tsc gulpfile.ts gulp-config.ts typings/tsd.d.ts

  • это будет и файлы и . Мы предоставляем файл в качестве справочного материала для правильной транспортировки. transpilegulpfile.tsgulp-config.tsgulpfile.jsgulp-config.jstypings/tsd.d.ts
  • Модуль typescript узла охватывает множество параметров >> tsc -hдля указания выходного каталога или файла и т . Д.

Надеюсь это поможет.

Автор: Akash Размещён: 23.05.2016 04:47
Вопросы из категории :
32x32