Bunun mümkün dönüşümü için ne kadar merak ediyorum typescript bir çapraz platform şekilde JavaScript içine. Ben kullanılabilirliği hakkında farkındayım typescript için düğüm paket yöneticisiyle sunucu tarafında kullanılabilen başka alternatifleri, ama vardır?
JavaScript içine typescript Dönüşüm
Typescript derleyici daktilo inşa ve dolayısıyla bir JS dosyasına (olarak mevcuttur edilir tsc.jssadece herhangi ES3-compiliant VM veya JS uygulaması hakkında kullanılarak çalıştırılabilir).
Yani derleyici 'geçerli dosya G / Ç altyapısı sadece Düğüm ve Windows Scripting Host dosya API'leri destekler söyledi. Başka bir çevre için destek tavsiye etmek isterseniz, bizim de Ekibe ulaşmak çekinmeyin GitHub sitesinde (Eski adıyla Codeplex )
Belki istediğiniz cevap değil, ama herkes belirtildiği gibi, derleyici seçenekleriniz bir JS dosyası yürütme seçenekleridir, bir JS dosyası, bu yüzden.
Windows, 2 bariz olanları, Düğüm ve Windows Komut Dosyası vardır.
Diğer seçenek Windows (Bence), bunu şöyle yapabiliriz tüm sürümleri ile birlikte gelen bir bileşenidir, zaten düğüm hakkında biliyorum:
cscript path/to/tsc.js source-file.ts
Sadece bütün derleyici seçeneklerini görebilirsiniz:
cscript path/to/tsc.js
Linux'ta Sana (düğüm ek olarak) kullanmak mümkün olmalıdır varsayalım:
- V8 bağımsız kabuk, değiştirme
nodeya dacscriptbirliktev8-shell - ExecJS https://github.com/sstephenson/execjs
Seçilen platformda olarak hazır herhangi diğer JS geçişin (başka bir yanıt, örneğin Rhino sözü)
Güncelleme: daha sonra Linux üzerinde size typescript derlemek Düğüm gerekir eğer doğruysa başka cevap, derleyici API düğümü ve Windows Script Host (cscript aracı) ile uyumludur anlaşılacağı yani.
Eğer böyle bir şey arıyorsanız apt get tsc(veya Linux / Mac paket yöneticileri gibi ne olursa olsun), orada olmadığını düşünüyorum.
Platform bağımsızlık arayışına eğer seçenekleri ile sorunları varsa ben, G / Ç Düğüm ve Windows komut dosyası için optimize edilmiştir okuduğumu, bu yüzden hatırlıyorum, muhtemelen Düğümü ile bitireceğiz.
Güncelleme: Buradaki başka bir cevap uyumluluğu hakkında aynı doğruluyor.
Somut olarak, sunucuda (sunucu varsayarak mevcut node.js vardır), sadece kaçardım:
node path/to/tsc.js yourFile1.ts yourFile2.ts [etc]
Sen tsc.js. için komut satırı yardımına görmek için herhangi bir giriş dosya adları olmadan bu komutu çalıştırabilirsiniz
Ben Java Javascript typescript derler bir projesi var:
https://github.com/martypitt/typescript4j
Diğer yanıtlar tartışıldığı gibi, bu Rhino kullanır, böylece bağımlılıkları yoktur npmya node.
İşte bir örnek:
// 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'));
Ben kullanmak başka proje - 'Bakehouse' Bahar ortamlarda typescript kaynakların on-the-fly derleme gerçekleştirmek için
Eğer daha sonra hedef gerekir Java buysa size oluşturma işleminin bir parçası olarak Rhino motoru ile tsc.js çalıştırabilir.
ts derlemek için -> js: düğüm tüm ortak platformlar için kullanılabilir, bu yüzden zaten bir tsc.js. varken bir tsc.java sahip olmak isterdim neden göremiyorum düğümünü takma hiç önemli değildir. Aslında, Java daha kolay.
Eğer proj.js dosyasını aldıktan sonra, o zaman hangi istediğiniz her zamankinden dağıtım platformu kullanmak kopyalayabilirsiniz.
Benim bakış itibaren, JavaScript - ya da daha doğru bir ECMAScript Java için bir alternatiftir. Bu yüzden ben aracı kullanmak için JVM vb kavga gerekmez mutluyum. Java'yı tercih Fakat, neden bile JS ile rahatsız?
Bunun ile oynamak ettik ve aşağıdaki kodla javascript ile typescript derlemek olabilir:
<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>
Gerçi pek ideal değil. Ben bu yüzden C # (JavaScript .NET kullanarak) içinde JS için typescript dönüştürebilirsiniz çalıştıran bir şeyler almaya çalışıyorum, ama ts.addUnit çağrı üzerine bir yığın taşması alıyorum.
Bu benim için çalıştı budur:
İlk olarak, yüklü typescript düğüm modülü >> npm install -g typescript. Bu bir komut satırı yardımcı verir tsc.
Sonraki, tsc gulpfile.ts gulp-config.ts typings/tsd.d.ts
- Bu irade ve dosyalarını ve . Biz tedarik doğru transpilation için referans olarak dosyayı.
transpilegulpfile.tsgulp-config.tsgulpfile.jsgulp-config.jstypings/tsd.d.ts typescriptDüğüm modülü >> birçok seçenek kapsartsc -hbelirtmek için vb çıkış dizin veya dosya, .
Bu yardımcı olur umarım.
Kandırmak SublimeText2 doğrudan SublimeText2 (eğer düğüm gerekir) dan javascript typescript transpile edebilirsiniz:
Bir oluşturma Typescript.sublime-builddosyası içinde /Sublime Text 2/Packages/Userbu içerikle:
{
"cmd": ["tsc", "$file"],
"selector" : "source.ts",
"path": "/usr/local/bin:$PATH"
}
Daha sonra, şimdi, ctrl + B veya cmd + B ile kodunuzu transpile edebilirsiniz













