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
61
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
20250708_JAWS_opscdk
takuyay0ne
2
120
Composerが「依存解決」のためにどんな工夫をしているか #phpcon
o0h
PRO
1
330
ソフトウェア品質を数字で捉える技術。事業成長を支えるシステム品質の マネジメント
takuya542
2
14k
テストから始めるAgentic Coding 〜Claude Codeと共に行うTDD〜 / Agentic Coding starts with testing
rkaga
15
5.3k
PHP 8.4の新機能「プロパティフック」から学ぶオブジェクト指向設計とリスコフの置換原則
kentaroutakeda
2
1k
Rubyでやりたい駆動開発 / Ruby driven development
chobishiba
1
750
AIと”コードの評価関数”を共有する / Share the "code evaluation function" with AI
euglena1215
1
180
Git Sync を超える!OSS で実現する CDK Pull 型デプロイ / Deploying CDK with PipeCD in Pull-style
tkikuc
4
240
なぜ適用するか、移行して理解するClean Architecture 〜構造を超えて設計を継承する〜 / Why Apply, Migrate and Understand Clean Architecture - Inherit Design Beyond Structure
seike460
PRO
3
790
Google Agent Development Kit でLINE Botを作ってみた
ymd65536
2
260
AI駆動のマルチエージェントによる業務フロー自動化の設計と実践
h_okkah
0
210
Quand Symfony, ApiPlatform, OpenAI et LangChain s'allient pour exploiter vos PDF : de la théorie à la production…
ahmedbhs123
0
210
Featured
See All Featured
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.4k
Imperfection Machines: The Place of Print at Facebook
scottboms
267
13k
YesSQL, Process and Tooling at Scale
rocio
173
14k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
3.9k
Fireside Chat
paigeccino
37
3.5k
The Cost Of JavaScript in 2023
addyosmani
51
8.5k
BBQ
matthewcrist
89
9.7k
Keith and Marios Guide to Fast Websites
keithpitt
411
22k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
50
5.5k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
47
9.6k
Fashionably flexible responsive web design (full day workshop)
malarkey
407
66k
Art, The Web, and Tiny UX
lynnandtonic
299
21k
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...