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
79
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
Other Decks in Programming
See All in Programming
【DroidKaigi 2026】「アクセシビリティを利用するとき、 アクセシビリティもまたこちらを利用している」 〜マルウェアによる攻撃と防衛について〜
halunoyo
0
460
AI に Inclusive UI を書かせよう — Design Rules Skill で Compose UI を作り直す
theoriatec2024
1
480
Deep dive into the select statement (GopherCon UK)
jespino
0
180
モジュールの視点からSwiftを読み解く #iosdc
s_shimotori
0
150
自分的「カンファレンスの楽しみ方」
syumai
0
200
LoopHub - ローカルで動く GitHub で、AI と共同開発
jugyo
1
540
Jetpack Compose メカニズム
skydoves
0
340
GraphRAGのKnowledge Graphを 直接!見る/View-GraphRAG's-KnowledgeGraph-directly!
tyumugi1113
1
300
MVNOの申込からeSIM開通までをiOSアプリでつなぐ- 本人確認・MNP・通信事業者基盤をまたぐ実装
satotakeshi
0
160
フロントエンドUIフレームワークのこれまでとこれから
ssssota
5
2.6k
型解析で実現する Go の言語内 DSL / Conference に Go! タイムテーブルの歩き方 for Gophers
mazrean
0
150
The Past, Present, and Future of Enterprise Java
ivargrimstad
0
320
Featured
See All Featured
Darren the Foodie - Storyboard
khoart
PRO
3
3.9k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
35
2.8k
Public Speaking Without Barfing On Your Shoes - THAT 2023
reverentgeek
1
560
Why Our Code Smells
bkeepers
PRO
340
58k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3.6k
DevOps and Value Stream Thinking: Enabling flow, efficiency and business value
helenjbeal
1
380
Documentation Writing (for coders)
carmenintech
77
5.5k
The Straight Up "How To Draw Better" Workshop
denniskardys
239
140k
Principles of Awesome APIs and How to Build Them.
keavy
128
18k
Unsuck your backbone
ammeep
672
58k
Technical Leadership for Architectural Decision Making
baasie
3
560
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
Transcript
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...