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の型定義が JavaScriptのバグを駆逐する
Search
Tetsuya Negishi
February 22, 2019
Programming
3
890
TypeScriptの型定義が JavaScriptのバグを駆逐する
Tetsuya Negishi
February 22, 2019
Tweet
Share
More Decks by Tetsuya Negishi
See All by Tetsuya Negishi
SOLIDから考える良いコンポーネントの設計原則
tetsuyanegishi
1
1.4k
React Hooksで美しいコードを書く / Writing beautiful code using React Hooks
tetsuyanegishi
0
170
React初学者が知らない コンポーネント分割テクニック
tetsuyanegishi
1
470
AWS Amplifyで作るサーバーレスバックエンド
tetsuyanegishi
3
1.8k
リアルタイムデータベース Cloud Firestore入門
tetsuyanegishi
10
8.5k
ブロックチェーンのマイニングとはなにか
tetsuyanegishi
1
80
スクラム開発の手法と実例
tetsuyanegishi
0
230
Other Decks in Programming
See All in Programming
Effective Signals in Angular 19+: Rules and Helpers
manfredsteyer
PRO
0
120
「とりあえず動く」コードはよい、「読みやすい」コードはもっとよい / Code that 'just works' is good, but code that is 'readable' is even better.
mkmk884
3
720
Cloudflare MCP ServerでClaude Desktop からWeb APIを構築
kutakutat
1
570
KMP와 kotlinx.rpc로 서버와 클라이언트 동기화
kwakeuijin
0
180
htmxって知っていますか?次世代のHTML
hiro_ghap1
0
350
テストコード書いてみませんか?
onopon
2
200
PHPとAPI Platformで作る本格的なWeb APIアプリケーション(入門編) / phpcon 2024 Intro to API Platform
ttskch
0
300
rails stats で紐解く ANDPAD のイマを支える技術たち
andpad
1
300
20年もののレガシープロダクトに 0からPHPStanを入れるまで / phpcon2024
hirobe1999
0
810
create_tableをしただけなのに〜囚われのuuid編〜
daisukeshinoku
0
280
range over funcの使い道と非同期N+1リゾルバーの夢 / about a range over func
mackee
0
110
毎日13時間もかかるバッチ処理をたった3日で60%短縮するためにやったこと
sho_ssk_
1
330
Featured
See All Featured
4 Signs Your Business is Dying
shpigford
182
21k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
47
5.1k
Building Better People: How to give real-time feedback that sticks.
wjessup
366
19k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
120k
Become a Pro
speakerdeck
PRO
26
5k
Producing Creativity
orderedlist
PRO
342
39k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
251
21k
YesSQL, Process and Tooling at Scale
rocio
169
14k
The Pragmatic Product Professional
lauravandoore
32
6.3k
Visualization
eitanlees
146
15k
Imperfection Machines: The Place of Print at Facebook
scottboms
266
13k
Scaling GitHub
holman
459
140k
Transcript
TypeScriptͷܕఆ͕ٛ JavaScriptͷόάΛۦஞ͢Δ ࠜ؛ప
ࣗݾհ • ࠜ؛ప • ϥϯαʔζגࣜձࣾ • ৽نࣄۀ • ओʹϑϩϯτ·ΘΓ୲ •
ڵຯؔ৺ • React, Vue.js, TypeScript • αʔόʔϨε
ࠓ͢͜ͱ • ৽ϓϩμΫτʹTypeScriptΛಋೖͯ͠ΈͯͲ͏͔ͩͬͨ • TypeScriptͪΌΜͱܕఆٛ͢Ε࠷ߴ • ͋Γ͕ͱ͏TypeScript
ϥϯαʔζͷϑϩϯτΤϯυٕज़ͷมભ 2008 ~ ݱࡏ 2015 ~ ݱࡏ 2018 ~ ݱࡏ
2017 ~ 2018
ϥϯαʔζͷϑϩϯτΤϯυٕज़ͷมભ 2008 ~ ݱࡏ 2015 ~ ݱࡏ 2018 ~ ݱࡏ
2016 ~ 2018
TypeScriptΛͬͯΘ͔ͬͨ͜ͱ ܕఆٛʹΑͬͯόά͕ܹݮ ͪΌΜͱܕఆٛ͠ͳ͍ͱόάΔ
None
JavaScriptͰΑ͘ى͖Δόά
JavaScriptͰΑ͘ى͖Δόά data ʹ number ͷྻΛೖΕΔ → Ұ࣌తʹundefind͕ೖΔύλʔϯ͕͋ͬͨ → <Graph>undefindΛఆ͓ͯ͠ΒͣΤϥʔ ReactͰΓ͕ͪ
Τϥʔ
JavaScriptͰΑ͘ى͖Δόά data ʹ Object ΛೖΕΔ → Ұ࣌తʹundefind͕ೖΔύλʔϯ͕͋ͬͨ → <Graph>undefindΛఆ͓ͯ͠ΒͣΤϥʔ ReactͰͷΤϥʔ΄΅͜ͷύλʔϯͷؾ͕͢Δ
Τϥʔ TypeScriptͰൃੜ͠ͳ͍
TypeScriptͰܕఆٛͨ͠߹
TypeScriptͰܕఆٛͨ͠߹ ? → undefinedΛڐ͢
TypeScriptͰܕఆٛͨ͠߹ propsͷܕ͕ܾ·Δ
TypeScriptͰܕఆٛͨ͠߹ data number[] ͱఆٛ͞Ε͍ͯͨͱ͢Δ
TypeScriptͰܕఆٛͨ͠߹ ͜ͷ࣌Ͱ·ͩΤϥʔ → <Graph>ʹ͢ data ͕ undefinedͰ͋ΔՄೳੑ͕͋Δ
TypeScriptͰܕఆٛͨ͠߹ undefinedͷνΣοΫ Τϥʔ͕ग़ͳ͘ͳΔ
TypeScriptͰܕఆٛͨ͠߹ undefinedͷνΣοΫ Τϥʔ͕ग़ͳ͘ͳΔ
TypeScriptͰܕఆٛͨ͠߹ undefinedͷνΣοΫ Τϥʔ͕ग़ͳ͘ͳΔ όάΛະવʹ͛ͯ࠷ߴ
• ͨͩ͜͠Εܕఆ͕͖ٛͪΜͱ͞Ε͍ͯΔ߹ • ϥΠϒϥϦͰରԠ͍ͯ͠ͳ͍߹ͨ·ʹ͋Δ → any Ͱܕఆٛͯ͠ΓΔ͔͠ͳ͍ → ٯʹόάͷԹচʹͳΓ͍͢ Graph͕ܕఆٛ͞Ε͍ͯͳ͍ͱΤϥʔ͕ग़ͳ͍
Enjoy TypeScript!