Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
TypeScript - JS utrzymany w ryzach
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Jan
December 06, 2016
Programming
71
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
任せる範囲はこう広がった / How the Scope of AI Delegation Has Expanded
nrslib
1
210
正しくソフトウェアを作る、前提を疑うための認知の視点 / doubt-premise
minodriven
21
7.1k
Hunting Vulnerabilities in Symfony with LLMs
vinceamstoutz
0
560
「AIで開発し、AIを届ける」をEvalでつなぐ 〜AIネイティブに始めるプロダクト開発の実践〜 / Connecting "Develop with AI, deliver AI" with Eval
rkaga
4
5.5k
エンジニア向け会社紹介/Findy Company Profile
findyinc
6
360k
JavaDoc 再入門
nagise
1
430
不変条件と整合性境界—ビジネスが決める設計判断と実現パターン / Invariants and Consistency Boundaries
nrslib
14
6k
Signal Forms: Details & Live Coding @enterJS 2026 in Mannheim
manfredsteyer
PRO
0
200
代数的データ型って何が嬉しいの? #frontend_phpcon_do
kajitack
8
3.8k
PHPで使える日時の表現と、その知り方 #frontend_phpcon_do
o0h
PRO
0
270
セキュリティの専門家じゃなくてもできる。「セキュリティ意識」をアップデートして サプライチェーン攻撃への耐性を高めよう。
tk3fftk
5
1k
気づいたらRubyで100作品 ー クリエイティブコーディングが生活の一部になるまで / 100 Ruby Sketches Later: How Creative Coding Became Part of My Life
chobishiba
3
620
Featured
See All Featured
GraphQLとの向き合い方2022年版
quramy
50
15k
Abbi's Birthday
coloredviolet
3
8.3k
Balancing Empowerment & Direction
lara
6
1.2k
Making the Leap to Tech Lead
cromwellryan
135
9.9k
Collaborative Software Design: How to facilitate domain modelling decisions
baasie
1
260
Designing for Timeless Needs
cassininazir
1
260
HDC tutorial
michielstock
2
730
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3.5k
The SEO identity crisis: Don't let AI make you average
varn
0
510
Navigating the moral maze — ethical principles for Al-driven product design
skipperchong
2
400
Writing Fast Ruby
sferik
630
63k
Designing Powerful Visuals for Engaging Learning
tmiket
1
430
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...