TypeScript

 TypeScript

29 Mart 2018 Frontend Istanbul icin yapmis oldugum TypeScript sunumu

D518bd56413643cbed1c8a02c25898cc?s=128

Eser Ozvataf

March 29, 2018
Tweet

Transcript

  1. 2.

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

    Kaynak Gönüllüsü ▸ Halen Lisansüstü Öğrencisi /eserozvataf /eserozvataf
  2. 3.

    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. 4.

    ‣ TYPE’LAR ‣ KUTU AÇILIŞI ‣ NE DEĞİL? ‣ AVANTAJLARI

    ‣ NASIL BAŞLANIR? Bugün bahsedeceklerim:
  4. 6.

    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. 9.

    TYPESCRIPT IS A TYPED SUPERSET OF JAVASCRIPT THAT COMPILES TO

    PLAIN JAVASCRIPT. typescriptlang.org TYPESCRIPT
  6. 10.

    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. 13.

    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. 16.

    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. 19.

    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. 23.

    AVANTAJLARI ECMASCRIPT STANDARTLARINA BUGÜNDEN SAHİP OLMAK (KISMEN) ▸ Tercih edildiği

    takdirde kodu yorumlarken eski standartlar seviyesine düşürür
  11. 27.

    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. 28.

    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