TypeScript'in ardındaki motivasyon nedir?


21

JavaScript'imiz vardı, sonra Flash'ımız vardı, sonra Silverlight'ımız ve sonra HTML5'in hepsine sahibiz.

Peki TypeScript'in ardındaki motivasyon nedir? Hangi sorunlarla mücadele edilecek ve TypeScript ile ne gibi gelişmeler elde edeceğiz?

http://www.typescriptlang.org/


15
Neden HTML5 "ownd" JavaScript düşünüyorsunuz?
Bergi

1
Herkesin ortak bir zemin bulmak için bazı şeyleri kabul etmesi gerektiğinde, teknoloji ve gelişme durdu.
Gero

3
Dart'dan neden bahsettin?
Robert Harvey

Dart, TypeScript veya Coffeescript JavaScript'e derlenebilir. Dart da oldukça yenidir.
Gero

Nicholas C. Zakas'ın "TypeScript Üzerine Düşünceler" başlıklı makalesine bir göz atın: nczonline.net/blog/2012/10/04/thoughts-on-typescript
Czarek Tomczak

Yanıtlar:


35

Bana JavaScript ile derlenen, statik olarak yazılmış, sınıf tabanlı bir dil gibi görünüyor. Bu iyi bir fikir ve başkalarının da sahip olduğu bir fikir .

Avantajlar, hem statik olarak yazılan, hem de sınıf tabanlı dillerde ve JavaScript'te geliştirilen herkes için açık olmalıdır:

  • Her şeyden önce bir derleyici. Dağıtımdan önce yazım hataları veya dikkatsizliğin neden olduğu bariz doğruluk sorunlarını kontrol edebilmek, çoğu geliştiricinin web geliştirme yapmak zorunda kalana kadar aldığı bir şeydir ve sonra aniden ayaklarının altından çıkarılır. Tarayıcılar, tarama testini uygun test ve hata ayıklama olanakları pahasına keyifli hale getirmek için tasarlanmıştır ve standart çözüm JSLint, bazı açık doğruluk sorunlarını kaçırdığı ve bir grup stil denetleyicisi şikayetini karıştırdığı için gerçek bir derleyicinin yerini tutmaz. raporları ile. Gerçek bir derleyiciye sahip olmak ileriye doğru büyük bir adımdır.
  • Ve benzer çizgiler boyunca, bir tip sistemi . Yazım sistemleri, kodun daha kolay okunmasını sağlayarak (bir işleve ne aktarıldığını ve ne yapabileceğini tam olarak bilirsiniz, örneğin parametre listesine bakarak) ve derlemede belirli bir doğruluk derecesi uygulayarak saati. (Belirli bir nesne türü bekliyorsanız, bir tamsayı iletmek bir hatadır. JavaScript bunu yapmanıza izin verir ve çalıştırmaya çalıştığınızda patlar; tür sistemli bir derleyici onu yakalar ve hata bildirir. sen.)

Gördüğümüz gibi temel fikir çok iyi. Bunu söyledikten sonra, dil hakkında hiçbir şey söyleyemem çünkü onunla hiç deneyimim yok. Ancak Smart'ı kullandım (yukarıdakilere bağlı) ve bunu web geliştirme için inanılmaz derecede güçlü ve kullanışlı bir araç olarak buldum.


7
Daha çok, JavaScript'i bir araya getiren yeni bir dilden çok üst kümeye benzer.
Daniel Little

2
Evet, güçlü bir şekilde yazmak programcıları kolaylaştırır.
Edwin Yip

13
TypeScript statik olarak yazılmıştır, kuvvetle yazılmamıştır.
Fenton

15

Görebildiğim kadarıyla TypeScript kullanmak için birkaç iyi neden var. Her şeyden önce, Mason Wheeler'ın dediği gibi, bir derleyici . Daha doğrusu bir derleyicinin yaptığı tüm kontroller. JSLint ve diğer araçlar yararlıdır, ancak bazı sorunları özler ve bazen basit yanlıştır. Bu "yeniliği" kesinlikle memnuniyetle karşılıyorum.

Daha sonra , okunabilirliği artıran ve doğru türleri uygulayan gerçek bir tip sistemi var . Sonuçta, bu gelişme hızını artırır.

Benim için en güzel şeylerden biri destek aletidir . Bu muhtemelen tip sisteminin bir yan etkisi, ancak yine de harika. Ve gerçekten gerekli, çünkü mevcut JavaScript araç-destek kullanışlı değildir.

TypeScript JavaScript'i genişletmeye çalışır . Derleyici gerçekten hoş bir JavaScript üretir. Buna ek olarak, ECMAScript 6 önerilerini takip eder . (Örneğin ok işlevi sözdizimi , parametre varsayılan değerleri , modüller vb.

Bu geçici modülleri ve sınıflar ile çalışan kolaylaştırır. JavaScript'te sınıflar ve modüller ile çalışmak gerçekten mümkündür ve oldukça yaygındır, ancak bir miktar kazan plakası kodu gerektirir. Ve okunması gerçekten kolay değil. TypeScript, Java veya C # gibi sınıf, arayüz ve modül ifadeleri yazmanıza izin verir, bu da bana sorarsanız çok daha kolaydır.

Ama sonuçta, hala sadece JavaScript . Yeni bir dil veya sözdizimi öğrenmeye gerek yoktur. Eklediği tek şey isteğe bağlı tip sistemdir (büyük ve gecikmiş).

Sonra "tanım kütüphanesi" var , yani tüm JavaScript kütüphanelerimi yeniden yazmadan ya da yama yapmadan kullanabiliyorum. Ancak, şimdi ek tip sistemi var.

Kesinlikle bir deneyin!

Son bir şey, HTML5 ve TypeScript arasında rekabet yoktur. Ama bu başka bir hikaye.


5

JavaScript'imiz vardı, sonra Flash'ımız vardı, sonra Silverlight'ımız ve sonra HTML5'in hepsine sahibiz.

Bu sadece doğru değil . Html5 onlara sahip değildir, multimedya kullanımını basitleştiren yeni işaretlemeler sunar ve yeni çağ tarayıcılarının avantajlarını araştırır (html oluştururken donanım hızlandırma kullanmak gibi).

Peki TypeScript'in ardındaki motivasyon nedir?

Motivasyonlar bunu kullanma nedenlerinden kaynaklanabilir. TypeScript'in tüm özellikleri: statik kontrol, sembol tabanlı gezinme, ifade tamamlama ve kod yeniden düzenleme, bunu dikkate almanın çok güçlü nedenleridir.

Ayrıca, sağlam bileşenler oluşturmanıza yardımcı olacak sınıflar, modüller ve arayüzler sunar. Bu özellikler, yüksek güvenilirliğe sahip uygulama geliştirme için geliştirme sırasında kullanılabilir, ancak basit JavaScript olarak derlenmiştir.


HTML 5, donanım hızlandırmanın ön koşulu değildir. Çoğu tarayıcı bunu HTML5 işaretlemesi olsun veya olmasın yapıyor
Neil N

ifadem, donanım ivmesinin tarayıcının html5 tarafından sağlanmadığı bir özellik olduğunu gösterir.
EL Yusubov

3

JS'ye derlenen yepyeni bir dil yerine javascript geliştirmeyi yönetmek için bir araç olarak değerlendirilebilir. Dart gibi bir sunucu tarafı geliştirme dili olmak istemez ve CoffeeScript gibi farklı bir sözdizimine sahip değildir. Popüler bir dil (ve çekirdek kütüphanesi) almak ve GWT veya script # gibi JS'ye derlemek istemedi. TypeScript, bir sonraki JS sürümü için önerilen aynı "sınıf" sözdizimini bile izler.

Bence web geliştirme çoğu bugün sadece müşteri tarafında, gerçek javascript kullanır yapılır. Dart, GWT gibi diller veya çerçeveler bunun için uygun değildir. Kahve tablasına giderseniz, yeni bir sözdizimi gelir. Hem kahve hem de JS'yi anlamalısınız. TypeScript, geliştiricileri türe özgü hatalardan (JS hatalarının büyük bir kısmı olan) koruyan ve geliştirme araçlarına geliştiricilerin niyeti hakkında daha fazla bilgi veren, JS'ye eritilmiş birkaç ekstra tür odaklı özellik eklerken.

Bu yaklaşım yeni değil. "Statik Yazma" bölümüne gidin

Bu makale sorgunuz- http://www.eweek.com/developer/microsoft-delivers-typescript-a-better-javascript-for-big-apps/


0

Paylaşılan, güvenilmez bir saçmalık parçasını (javascript), önemli projeler için kullanılabilecek özel bir dile dönüştürmek için bir çaba olduğunu düşünüyorum.

Benzer hedeflere sahip olan ancak javascript'i dilin bir parçası haline getirerek daha temiz bir yaklaşım benimseyen GWT ile karşılaştırılmalıdır; ve tarayıcıdan bağımsız olarak eksiksiz bir çalışma ortamı tanımlamak için çok temiz bir yaklaşım benimseyen Java uygulamaları veya Flash ile.

Fikriniz değişebilir, ancak bence (değişken, tutarsız) javascript uygulamalarını ve DOM modellerini yerel olarak sağlayan tarayıcılara bağlı olduğu sürece mahkumdur.


5
Öncelikle tescilli değil, zaten açık bir standart. İkincisi, GWT / ScriptSharp'den daha çok Dart'a benziyor (benzer olmasına rağmen).
Daniel Little

1
Muhtemelen bunu kazanmanın bir yolu yoktur - Microsoft bunu kontrol etmezse, birçok varyantla başka bir piç haline getirilmiş dil haline gelecektir ve hala javascript ve DOM'ların değişen kumlarına bağımlıdır
ddyer

1
Şu anki popüler HTML5 / JS yığını tarafından daha az alakalı hale getirilmekte olan Flash ve / veya Java becerileri üzerinde biraz acı çekebilecek biri gibi geliyorsunuz.
Graham

3
-1 Yani JavaScript'i sevmiyorsunuz. Bu senin ifaden, temelde.
Bruno Schäpper

2
Adil ve dizginin temeli olduğu için, sanırım dizginin kötü bir temele dayandığını düşünüyorum. Mutlaka ölümcül değil, ama acı dünyası.
ddyer
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.