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
Jan
December 06, 2016
Programming
0
65
TypeScript - JS utrzymany w ryzach
Prezentacja z CodeteCon, 6 XII 2016
Jan
December 06, 2016
Tweet
Share
Other Decks in Programming
See All in Programming
Event Storming
hschwentner
3
1.3k
grapheme_strrev関数が採択されました(あと雑感)
youkidearitai
PRO
1
210
クライアントワークでSREをするということ。あるいは事業会社におけるSREと同じこと・違うこと
nnaka2992
1
320
メタプログラミングで実現する「コードを仕様にする」仕組み/nikkei-tech-talk43
nikkei_engineer_recruiting
0
170
API Platformを活用したPHPによる本格的なWeb API開発 / api-platform-book-intro
ttskch
1
130
守る「だけ」の優しいEMを抜けて、 事業とチームを両方見る視点を身につけた話
maroon8021
3
410
AI主導でFastAPIのWebサービスを作るときに 人間が構造化すべき境界線
okajun35
0
630
atmaCup #23でAIコーディングを活用した話
ml_bear
4
750
開発ステップを細分化する、破綻しないAI開発体制
kspace
0
110
Takumiから考えるSecurity_Maturity_Model.pdf
gessy0129
1
130
手戻りゼロ? Spec Driven Developmentとは@KAG AI week
tmhirai
1
170
New in Go 1.26 Implementing go fix in product development
sunecosuri
0
380
Featured
See All Featured
Mobile First: as difficult as doing things right
swwweet
225
10k
How to Get Subject Matter Experts Bought In and Actively Contributing to SEO & PR Initiatives.
livdayseo
0
81
AI in Enterprises - Java and Open Source to the Rescue
ivargrimstad
0
1.2k
Design of three-dimensional binary manipulators for pick-and-place task avoiding obstacles (IECON2024)
konakalab
0
380
From Legacy to Launchpad: Building Startup-Ready Communities
dugsong
0
170
Groundhog Day: Seeking Process in Gaming for Health
codingconduct
0
120
Applied NLP in the Age of Generative AI
inesmontani
PRO
4
2.1k
Claude Code どこまでも/ Claude Code Everywhere
nwiizo
64
53k
The Illustrated Children's Guide to Kubernetes
chrisshort
51
52k
Being A Developer After 40
akosma
91
590k
The #1 spot is gone: here's how to win anyway
tamaranovitovic
2
980
The untapped power of vector embeddings
frankvandijk
2
1.6k
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...