TypeScript ve Babel.js Kullanarak Type Safe ES7 Kullanmak
22 Oct 2015Merhaba!
1 sene sonra ilk blog yazısı yazıyorum. Bu sürede askere gidip gelmiş bulundum. Askerlik oldukça farklı bir deneyim, ama bugün anlatacağım şey askerlik değil tabii ki.
ECMAScript 7
Henüz yeni yeni ES6 özelliklerini öğreniyorduk ki, ES7’nin özellikleri de ortaya çıkmaya başladı. Ve bu gelişmelerin tümü biz Eski JavaScript, yeni ECMAScript geliştiricilerini heyecandan heyecana sürüklüyor.
Bugün ‘ES6’da ES7’de neler var’ detaylarına girebilecek kadar zaman yaratamadım. Onun yerine TypeScript ve Babel.js kullanarak bu özellikleri bugünden kullanmaya nasıl başlayabileceğimizi inceleyelim.
TypeScript ne alaka?
Evet tüm bu işlemleri aslında sadece Babel kullanarak --stage 0
ile rahatlıkla halledebilirdik.
TypeScript’i --noEmit
ile yalnızca type check işlemleri için kullanıyoruz. Babel‘in ise tüm transpile
işinden sorumlu olması daha makul geldi.
Örnek Kod
Örnek bir ES7 kodu yazalım:
Bu kod, basitçe async
ve await
kullanarak asenkron bekleme yaratıyor.
Bunun için öncelikle sleep
fonksiyonunu tanımlıyoruz. Bu fonksiyonumuza
bir de type desteği ekleyelim ve time
parametresinin bir Number
olması
gerektiğini belirtelim.
Kodumuzun son hali (test.ts
)
Bu kodu önce tsc
ile derleyelim:
Bu kod --noEmit
ile sadece statik kontrol yapacak fakat kodu herhangi bir yere çıktı vermeyecek.
Bu kodun çıktı verememesini sağlayalım:
hatasını alıyoruz.
Bu kodu geri çevirip Babel ile derlemeye devam edelim:
--optional runtime
kullanmak içinbabel-runtime
paketini kurmayı unutmayın.
Oneliner
İşimiz daha kolay olsun, çok uğraşmayalım diye bir de oneliner yazalım.
Hatta bu kodu biraz daha genişleterek birden çok dosyayı çevirmesini sağlayalım:
Sevgiler.