Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
TypeScript - JS utrzymany w ryzach
Search
Jan
December 06, 2016
Programming
87
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
TypeScript - JS utrzymany w ryzach
Prezentacja z CodeteCon, 6 XII 2016
Jan
December 06, 2016
Transcript
29 slides
TypeScript JS utrzymany w ryzach Jan Metrycki front-end developer @
Codete
[email protected]
JavaScript - elegancki, elastyczny, uniwersalny
Kiedy wolność staje się problemem? • sprawdzanie typów - jedynie
imperatywne (typeof, instanceof) • system klas, który nic nie gwarantuje
Kiedy wolność staje się problemem? • funkcje, których sygnatura nie
mówi nic o oczekiwanych argumentach • nieustrukturyzowane dane
Uwagi wstępne •
Uwagi wstępne • to nie będzie prezentacja o Angular 2
•
Uwagi wstępne • to nie będzie prezentacja o Angular 2
• to nie będzie bezkrytyczna apologia TypeScriptu
TypeScript - podstawowe fakty •
TypeScript - podstawowe fakty • projekt Microsoftu •
TypeScript - podstawowe fakty • projekt Microsoftu • jeden z
twórców - Anders Hejlsberg, architekt C#, Delphi i TurboPascala •
TypeScript - podstawowe fakty • projekt Microsoftu • jeden z
twórców - Anders Hejlsberg, architekt C#, Delphi i TurboPascala • język transkompilowany do JS •
TypeScript - podstawowe fakty • projekt Microsoftu • jeden z
twórców - Anders Hejlsberg, architekt C#, Delphi i TurboPascala • język transkompilowany do JS • statyczne typowanie •
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
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
TypeScript - elementarz • wszystko na etapie kompilacji • możliwość
stosowania do statycznej analizy JS
TypeScript - elementarz • boolean, number, string, array • tuple
• enum • any • void • null & undefined • never
TypeScript - elementarz
TypeScript - elementarz
TypeScript - elementarz
TypeScript - elementarz
Lepsze klasy • pola publiczne, prywatne i chronione (public, private,
protected) • modyfikator readonly • klasy abstrakcyjne • implementacja interfejsów TypeScript - elementarz
Generics • funkcje • klasy TypeScript - elementarz
"Rygorystyczne" ustawienia • noImplicitAny • strictNullChecks TypeScript - elementarz
• zaawansowane "zgadywanie" typów TypeScript - nowa funkcjonalność
• typy mapowane TypeScript - nowa funkcjonalność
• definicje typów do bibliotek - npm @types/… • świetne
wsparcie w IDE (WebStorm, VS Code) - IntelliSense, refactoring, linting TypeScript - tooling
• 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
• tooling - jedna z największych zalet • statyczne typowanie
samo nie załatwi wszystkiego • ...a na pewno nie zastąpi testów Podsumowanie
Pytania? I to by było na tyle...
Other Decks in Programming
See All in Programming
SFCで実現する病院・医療システムの動的組み立て式UI
koukimiura
1
180
Apple Intelligenceとオンデバイス時代の到来
yahir0
0
240
Coding with AI: How to trust the storyteller (AWS Community Day Adria, Ljubljana 2026)
slobodan
0
140
そのデザイントークン、Flutterでも同じ見た目になりますか?
nakamizu
0
340
エージェントを使い続けるためのメタワーク / Meta-work for keeping using the agent
rkaga
6
2.3k
社内AIエージェント「Askワンバン」における コストチューニングの取り組み
t0yohei
0
170
Performance Optimization With LLMs
xleitix
0
250
AI時代のFlutter品質設計 — アプリ品質を守るQuality Layers
omatty198
0
370
Next.js: The final boss of Web Performance
guaca
0
400
クラウドゲーミングのパフォーマンス最適化に挑む / Cloud Gaming Performance Tuning
vivion
0
330
ビジネスロジックを堅牢に~Scala 3のドメインプリミティブ~
j5ik2o
0
100
AmebaブログはKMPから卒業します
kmars0605
0
350
Featured
See All Featured
YesSQL, Process and Tooling at Scale
rocio
174
15k
KATA
mclloyd
PRO
35
16k
How to Talk to Developers About Accessibility
jct
2
620
Why You Should Never Use an ORM
jnunemaker
PRO
61
10k
Paper Plane (Part 1)
katiecoart
PRO
3
12k
More Than Pixels: Becoming A User Experience Designer
marktimemedia
3
620
技術選定の審美眼(2025年版) / Understanding the Spiral of Technologies 2025 edition
twada
PRO
121
130k
Bootstrapping a Software Product
garrettdimon
PRO
306
120k
Primal Persuasion: How to Engage the Brain for Learning That Lasts
tmiket
0
520
How to Grow Your eCommerce with AI & Automation
katarinadahlin
PRO
2
350
State of Search Keynote: SEO is Dead Long Live SEO
ryanjones
0
350
How to Align SEO within the Product Triangle To Get Buy-In & Support - #RIMC
aleyda
2
1.9k