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

TypeScript - JS utrzymany w ryzach

Jan
December 06, 2016

TypeScript - JS utrzymany w ryzach

Prezentacja z CodeteCon, 6 XII 2016

Jan

December 06, 2016
Tweet

Other Decks in Programming

Transcript

  1. Kiedy wolność staje się problemem? • sprawdzanie typów - jedynie

    imperatywne (typeof, instanceof) • system klas, który nic nie gwarantuje
  2. Kiedy wolność staje się problemem? • funkcje, których sygnatura nie

    mówi nic o oczekiwanych argumentach • nieustrukturyzowane dane
  3. Uwagi wstępne • to nie będzie prezentacja o Angular 2

    • to nie będzie bezkrytyczna apologia TypeScriptu
  4. TypeScript - podstawowe fakty • projekt Microsoftu • jeden z

    twórców - Anders Hejlsberg, architekt C#, Delphi i TurboPascala •
  5. TypeScript - podstawowe fakty • projekt Microsoftu • jeden z

    twórców - Anders Hejlsberg, architekt C#, Delphi i TurboPascala • język transkompilowany do JS •
  6. TypeScript - podstawowe fakty • projekt Microsoftu • jeden z

    twórców - Anders Hejlsberg, architekt C#, Delphi i TurboPascala • język transkompilowany do JS • statyczne typowanie •
  7. TypeScript - podstawowe fakty • projekt Microsoftu • jeden z

    twórców - Anders Hejlsberg, architekt C#, Delphi i TurboPascala • język transkompilowany do JS • statyczne typowanie • nadzbiór JS
  8. TypeScript - historia • X 2012 - opublikowanie projektu (wersja

    0.8) • VII 2014 - nowy kompilator • początek 2015 (1.5) - zaadoptowanie funkcjonalności ES6 • połowa 2015 (1.6) - wsparcie dla generatorów i JSX • IX 2016 (2.0) - zaawansowana inferencja typów • XII 2016 (2.1) - rozwinięcie mechanizmu inferencji, typy mapowane
  9. TypeScript - elementarz • boolean, number, string, array • tuple

    • enum • any • void • null & undefined • never
  10. Lepsze klasy • pola publiczne, prywatne i chronione (public, private,

    protected) • modyfikator readonly • klasy abstrakcyjne • implementacja interfejsów TypeScript - elementarz
  11. • definicje typów do bibliotek - npm @types/… • świetne

    wsparcie w IDE (WebStorm, VS Code) - IntelliSense, refactoring, linting TypeScript - tooling
  12. • mniej popularny od "vanilla" JS, większy próg wejścia do

    projektu • rozwijany przez jedną firmę • bardzo dynamiczny rozwój • mniej czytelny kod • bywa uciążliwy • problemy z definicjami typów TypeScript - kilka argumentów przeciw
  13. • tooling - jedna z największych zalet • statyczne typowanie

    samo nie załatwi wszystkiego • ...a na pewno nie zastąpi testów Podsumowanie