TypeScript
JS utrzymany w ryzach
Jan Metrycki
front-end developer @ Codete
[email protected]
Slide 2
Slide 2 text
JavaScript - elegancki, elastyczny,
uniwersalny
Slide 3
Slide 3 text
Kiedy wolność staje się problemem?
● sprawdzanie typów - jedynie imperatywne (typeof,
instanceof)
● system klas, który nic nie gwarantuje
Slide 4
Slide 4 text
Kiedy wolność staje się problemem?
● funkcje, których sygnatura nie mówi nic o oczekiwanych
argumentach
● nieustrukturyzowane dane
Slide 5
Slide 5 text
Uwagi wstępne
●
Slide 6
Slide 6 text
Uwagi wstępne
● to nie będzie prezentacja o Angular 2
●
Slide 7
Slide 7 text
Uwagi wstępne
● to nie będzie prezentacja o Angular 2
● to nie będzie bezkrytyczna apologia TypeScriptu
Slide 8
Slide 8 text
TypeScript - podstawowe fakty
●
Slide 9
Slide 9 text
TypeScript - podstawowe fakty
● projekt Microsoftu
●
Slide 10
Slide 10 text
TypeScript - podstawowe fakty
● projekt Microsoftu
● jeden z twórców - Anders Hejlsberg, architekt C#, Delphi i TurboPascala
●
Slide 11
Slide 11 text
TypeScript - podstawowe fakty
● projekt Microsoftu
● jeden z twórców - Anders Hejlsberg, architekt C#, Delphi i TurboPascala
● język transkompilowany do JS
●
Slide 12
Slide 12 text
TypeScript - podstawowe fakty
● projekt Microsoftu
● jeden z twórców - Anders Hejlsberg, architekt C#, Delphi i TurboPascala
● język transkompilowany do JS
● statyczne typowanie
●
Slide 13
Slide 13 text
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
Slide 14
Slide 14 text
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
Slide 15
Slide 15 text
TypeScript - elementarz
● wszystko na etapie kompilacji
● możliwość stosowania do statycznej analizy JS
● zaawansowane "zgadywanie" typów
TypeScript - nowa funkcjonalność
Slide 25
Slide 25 text
● typy mapowane
TypeScript - nowa funkcjonalność
Slide 26
Slide 26 text
● definicje typów do bibliotek - npm @types/…
● świetne wsparcie w IDE (WebStorm, VS Code) -
IntelliSense, refactoring, linting
TypeScript - tooling
Slide 27
Slide 27 text
● 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
Slide 28
Slide 28 text
● tooling - jedna z największych zalet
● statyczne typowanie samo nie załatwi wszystkiego
● ...a na pewno nie zastąpi testów
Podsumowanie