2017-07-11 45 views
6

Ben ES5 hedef ve çıktı küçültmek için typescript ve ardından Kapatma derleme'yi (gelişmiş derleme) kullanmak istiyorum. Kapatma Derleyici + typescript

Ben TSC yerine tsickle kullanmak zorunda mıyım? Tsc'nin sahip olduğu tüm seçenekler için desteğe sahip değildir ve Typescript türlerini Closure türlerine (% 100 uyumlu olmayan) çevirmek istediğinden çok iddialıdır. Kapatma türlerini kullanmam gerekmiyor; Sadece küçültme/özellik yeniden adlandırmaya ihtiyacım var.

Ben modüllerini ES6 ve bu (tür denetleme veya tip tabanlı olmadan optimzations) küçültmek için Closure Compiler kullanmak typescript derlemek için tsc kullanabilir miyim?

Bonus: Ben Kapatma Kütüphane kullanmak istiyorsanız Bu cevap değişiyor mu? İkinci giriş olarak JS kabul etmek spec'ed gibi

+0

Sadece bir Açısal çekirdek dev düzgün bu soruya cevap verebilir. –

+0

@ ChadKillingsworth, bu bir Açısal uygulama olmasa da. –

+0

Biliyorum - ama bunun farkında olduğum tek şey, manzarayı bu seviyeye kadar anlıyor. Klavuz derleyici, tsickle ve kapama derleyici - bu oldukça özel bir bilgi kümesidir. Ve bu çok önemsiz bir soru. –

cevap

4

Teknik olarak, sen tsc ve Kapanış Compiler hemen borudan bunu itibaren ES6 çıkışını alabilir. Bunu zaten birçok yerde yapıyoruz, örneğin. Kapatma derleyicisi ile derlenen açısal uygulamalar, rxjs kütüphane dağılımını alır ve kapatma paketine dahil eder. Pratikte, Kapatma onu görmeden önce JS'yi dönüştürmek için tsickle gibi bir şey kullanmak için birkaç neden bulabiliriz.

  • çeteleler,
  • Kapatma ES6 bazı sınırlamaları vardır (IIUC veya toplaması) Kapatma çalışmıyor yayarlar örneğin şu anda desteklemediği export * - tsickle export {each, visible, symbol}
  • ekleyerek bu yeniden yazıyor JSDoc ek açıklamaları, kodun yapısını, optimizasyonları geliştirebilecek ve yazdırdığı uyarı sayısını azaltabilecek şekilde kapatmaya yardımcı olur.

Mevcut plan daha sonra biz aslında dönüştüren derleyici etkin olması gereken daha net olabilir, birden TS 2.3 yayan dönüştürmeleri tsickle ayrıştırmak etmektir.

Ekleme tipleri isteğe bağlıdır. Tsickle'ın yazdığı modu kapatırsanız, bunun yerine sadece {?} yazdıracağız. Ancak, TypeScript'in çıkışını JS kodundan çıkarmak isterseniz, kapama tipi denetleyicisinin türleri bilmesini istersiniz.

Yeni bir oluşturma aracı için oyun oynuyorsanız, bir noktada https://github.com/bazelbuild/rules_typescript'daki Bazel araç zincirine tsickle oluşturacağız. Bu arada, Tsickle'nin komut satırı bayraklarını daha fazla desteklemesi için bir özellik isteğinde bulunabilirsiniz. (Ama Lucidchart zaten Tsickle bir çatal korur düşünüyorum?)

+0

Yapıyoruz :) Ayrıca, bazel harika görünüyor, yine de kullanmıyoruz. İlk duyurulduğu günden bu yana yol haritasını takip ediyorum. –