Upgrade to Pro — share decks privately, control downloads, hide ads and more …

TypeScript

 TypeScript

29 Mart 2018 Frontend Istanbul icin yapmis oldugum TypeScript sunumu

Eser Ozvataf

March 29, 2018
Tweet

More Decks by Eser Ozvataf

Other Decks in Programming

Transcript

  1. HAKKIMDA ESER ÖZVATAF ▸ Kurumsal Mimari @ KoçSistem ▸ Açık

    Kaynak Gönüllüsü ▸ Halen Lisansüstü Öğrencisi /eserozvataf /eserozvataf
  2. HAKKIMDA BUGÜNE KADAR… ▸ 1994 ilk kod, 2002’de profesyonellik ▸

    >50 proje ▸ 6 adet dil
 Basic > Pascal/Delphi > C/C++ > PHP > .NET > JavaScript Type’lar
  3. ‣ TYPE’LAR ‣ KUTU AÇILIŞI ‣ NE DEĞİL? ‣ AVANTAJLARI

    ‣ NASIL BAŞLANIR? Bugün bahsedeceklerim:
  4. TYPE’LAR NE İŞE YARARLAR? ▸ Çıkış nedeni:
 
 Bir programlama

    dilinin bir değer için sistem hafızasında ne kadar yer kaplayacağını belirlemek. Bu doğrultuda statik “allocation” yapmak. number deger1 = 5;
 bool deger2 = true; Sistem Hafızası
  5. TYPESCRIPT IS A TYPED SUPERSET OF JAVASCRIPT THAT COMPILES TO

    PLAIN JAVASCRIPT. typescriptlang.org TYPESCRIPT
  6. TYPESCRIPT JAVASCRIPT İLE İLİŞKİSİ ▸ JavaScript’in üst kümesidir ▸ Dolayısıyla

    her JavaScript kodu aynı zamanda TypeScript kodudur ▸ Derlendikten sonra JavaScript’e dönüşür
  7. TYPESCRIPT TYPE TANIMLAMALARI ▸ Kuralları sıkı bir tip sistemini JavaScript

    dünyasına getirmektense,
 JavaScript’de tipler olsaydı nasıl olurdu sorusu yanıtlanmış null undefined void never any string number boolean object symbol Array<> Set<> Map<,>
  8. TYPESCRIPT TYPE TANIMLAMALARI: DAHASI ‘ease-in’ ‘ease-in’ | ‘ease-out’ [ 5,

    ‘deneme’, 3, 7 ] Array<number | string> function (a) { return a.length; } (val: string) => number { ‘a’: 1, ‘b’: 2 } { [key: string]: number } Union Types T1 & T2 Generic Types T1<T2> … …
  9. NE DEĞİL? TYPESCRIPT HAKKINDA KAFA KARIŞIKLIKLARI ▸ Bir programlama dilinin

    üst kümesi olması nedeniyle o da bir programlama dili ▸ Ancak… JavaScript’den farklı bir development kültürü yok, bir C# veya Elm değil ▸ Fakat bir RunTime değil ▸ Bir polyfill paketi değil, dolayısıyla babel işlevlerini birebir karşılamaz ▸ İçerisinde herhangi bir decorator v.s. tanımı halihazırda gelmez,
 Gördükleriniz muhtemelen Angular’a aittir
  10. AVANTAJLARI ECMASCRIPT STANDARTLARINA BUGÜNDEN SAHİP OLMAK (KISMEN) ▸ Tercih edildiği

    takdirde kodu yorumlarken eski standartlar seviyesine düşürür
  11. NASIL BAŞLARIM? VAROLAN UYGULAMALAR İÇİN TYPE TANIMLARI ▸ TypeScript ile

    geliştirilen kütüphanelerde sorun yok, ▸ Geri kalan popüler kütüphaneler için @types/
  12. NASIL BAŞLARIM? TOOLING DESTEĞİ ▸ Geniş editor desteği ▸ Webstorm,

    Visual Studio ▸ Visual Studio Code, Sublime Text, Atom ▸ VIM, Emacs ▸ Webpack, Gulp, Grunt v.s. için ek kütüphaneler ▸ ESLint paketleri ve TSLint