Transformarea typescript în JavaScript

voturi
17

Mă întreb cum este posibil de a transforma typescript în JavaScript într - o manieră cross - platform. Sunt conștient despre disponibilitatea nodului manager de pachete pentru dactilografiat , dar există și alte alternative care pot fi utilizate pe partea de server?

Întrebat 01/10/2012 la 19:16
sursa de către utilizator
În alte limbi...                            


9 răspunsuri

voturi
25

Compilatorul typescript este construit dactilografiat, și , prin urmare , este disponibil ca fișier JS ( tsc.js) , care poate fi rulat folosind doar despre orice implementare VM sau JS-ES3 compiliant.

Asta a spus, infrastructura de fișier I / O curent compilatorului suportă doar Nodul și Windows Scripting API - uri de fișiere gazdă. Dacă doriți să recomande sprijin pentru un alt mediu, simțiți - vă liber pentru a ajunge la echipa de la nostru site - ul GitHub (Fost CodePlex )

Publicat 01/10/2012 la 19:36
sursa de către utilizator

voturi
12

Poate că nu e răspunsul dorit, dar toată lumea a menționat, compilatorul este un fișier JS, deci, opțiunile sunt opțiunile de executare a unui fișier JS.

În Windows, există 2 cele evidente, Nodul și Windows Script Host.

Știi despre nod deja, cealaltă opțiune este o componentă care vine cu toate versiunile de Windows (cred), o poți face în felul următor:

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

Puteți vedea toate opțiunile de compilare doar prin:

cscript path/to/tsc.js

Pe Linux Presupun că ar trebui să poată utiliza (în plus față de nod):

  • V8 autonom coajă, înlocuiți nodesau cscriptcuv8-shell
  • ExecJS https://github.com/sstephenson/execjs
  • Orice alt alergător JS disponibil pe platforma selectată (un alt răspuns menționat Rhino, de exemplu)

Actualizare: Un alt răspuns sugerează API compilator este compatibil doar cu nod și Windows Script Host (instrument CScript), astfel încât, dacă este corect, atunci pe Linux va trebui Node pentru a compila dactilografiate.

Dacă sunteți în căutarea pentru ceva de genul apt get tsc(sau indiferent de Linux / Mac administratorii de pachete sunt ca), cred că nu există.

Îmi amintesc citit undeva că I / O este optimizat pentru Nodul și Windows Script Host, astfel încât, în cazul în care aveți probleme cu opțiuni, veți termina, probabil, cu Nodul dacă dorește să obțină independența platformei.

UPDATE: Un alt răspuns aici confirmă același lucru despre compatibilitatea.

Publicat 03/10/2012 la 04:23
sursa de către utilizator

voturi
5

Concret, pe server (presupunând că serverul dvs. are Node.js disponibile), ar fi pur și simplu rulați:

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

Puteți rula această comandă, fără nici un nume de fișiere de intrare pentru a vedea linia de comandă ajutor pentru tsc.js.

Publicat 01/10/2012 la 23:39
sursa de către utilizator

voturi
3

Am un proiect care compilează la Javascript typescript în Java:

https://github.com/martypitt/typescript4j

Așa cum sa discutat în alte răspunsuri, acest lucru face uz de Rhino, deci nu are dependențe npmsau node.

Iată un exemplu:

// 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'));

L folosesc într - un alt proiect - „brutărie“ pentru a efectua compilarea on-the-fly a resurselor typescript în medii de primăvară

Publicat 17/01/2013 la 08:35
sursa de către utilizator

voturi
3

Dacă este Java care trebuie să vizați, atunci ai putea rula tsc.js cu motorul Rhino, ca parte a procesului de construcție.

Publicat 02/10/2012 la 12:34
sursa de către utilizator

voturi
2

Pentru a compila ts -> JS: nod este disponibil pentru toate platformele comune, așa că nu reușesc să văd de ce ai vrea să aibă o tsc.java atunci când aveți deja un tsc.js. Instalarea nod nu e mare. De fapt, este mai ușor decât Java.

Odată ce aveți fișierul proj.js, îl puteți copia pe care vreodată platforma de implementare pe care doriți să o utilizați.

Din punctul meu de vedere, JavaScript - sau, mai precis ECMAScript este o alternativă la Java. Deci, eu sunt fericit că nu am să wrangle JVM, etc pentru a utiliza instrumentul. Dar dacă preferați Java, atunci de ce deranjez, chiar cu JS?

Publicat 02/10/2012 la 01:12
sursa de către utilizator

voturi
1

Am jucat în jurul cu acest lucru, și poate compila typescript cu javascript cu următorul cod:

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

Nu e chiar ideale totuși. Încerc să iau ceva de funcționare, așa că am putea converti typescript la JS în cadrul C # (.NET folosind Javascript), dar eu sunt obtinerea unui preaplin stivă la apel ts.addUnit.

Publicat 02/10/2012 la 18:48
sursa de către utilizator

voturi
0

Aceasta este ceea ce a lucrat pentru mine:

În primul rând, instalat typescript modulul de nod >> npm install -g typescript. Acest lucru oferă un utilitar de linie de comandă tsc.

Următor →, tsc gulpfile.ts gulp-config.ts typings/tsd.d.ts

  • acest lucru va și fișiere la AND . Noi furnizam fișierul ca referință pentru transpilation corectă. transpilegulpfile.tsgulp-config.tsgulpfile.jsgulp-config.jstypings/tsd.d.ts
  • typescript Modulul nod acoperă multe opțiuni >> tsc -hpentru a specifica directorul de ieșire sau un fișier, etc .

Sper că acest lucru vă ajută.

Publicat 23/05/2016 la 04:47
sursa de către utilizator

voturi
0

SublimeText2 Trick Puteți transpile dactilografiat JavaScript direct din SublimeText2 (aveți nevoie de nod):

Creați un Typescript.sublime-buildfișier în /Sublime Text 2/Packages/Useracest conținut:

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

apoi, acum, puteți transpile codul cu ctrl + B sau Cmd + B

Publicat 02/10/2012 la 07:46
sursa de către utilizator

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more