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
840
TypeScriptの型定義が JavaScriptのバグを駆逐する
Tetsuya Negishi
February 22, 2019
Tweet
Share
More Decks by Tetsuya Negishi
See All by Tetsuya Negishi
SOLIDから考える良いコンポーネントの設計原則
tetsuyanegishi
1
1.2k
React Hooksで美しいコードを書く / Writing beautiful code using React Hooks
tetsuyanegishi
0
160
React初学者が知らない コンポーネント分割テクニック
tetsuyanegishi
1
430
AWS Amplifyで作るサーバーレスバックエンド
tetsuyanegishi
3
1.5k
リアルタイムデータベース Cloud Firestore入門
tetsuyanegishi
10
8.3k
ブロックチェーンのマイニングとはなにか
tetsuyanegishi
1
69
スクラム開発の手法と実例
tetsuyanegishi
0
220
Other Decks in Programming
See All in Programming
Anthropic Cookbook のおすすめレシピ
schroneko
7
1.3k
Hanami and htmx
bkuhlmann
0
230
AppRouter Panel Talk
yosuke_furukawa
PRO
1
480
Elm Form Validation
bkuhlmann
0
520
Polars入門
daikikatsuragawa
1
190
大規模Reactアプリのリアーキテクチャ~8万行のTanStack Query移行の軌跡~
kj455
4
1k
From Spring Boot 2 to Spring Boot 3 with Java 21 and Jakarta EE
ivargrimstad
0
700
dbtのドメイン分割による データ基盤の改善とDigdagとの連携
sakama
0
460
PostmanでAPIの動作確認が楽になった話
h455h1
0
180
JavaScript Closure
asoluka
0
270
SwiftUIで使いやすいToastの作り方 / How to build a Toast system which is easy to use in SwiftUI
lovee
3
180
Introducing Kotlin Multiplatform in an existing mobile app - Workshop Edition | AndroidMakers Paris
prof18
0
160
Featured
See All Featured
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
22
1.6k
Unsuck your backbone
ammeep
664
57k
Building an army of robots
kneath
300
41k
The Straight Up "How To Draw Better" Workshop
denniskardys
228
130k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
242
1.2M
What’s in a name? Adding method to the madness
productmarketing
PRO
17
2.7k
Optimizing for Happiness
mojombo
370
69k
Reflections from 52 weeks, 52 projects
jeffersonlam
345
19k
Building Applications with DynamoDB
mza
88
5.6k
The World Runs on Bad Software
bkeepers
PRO
61
6.7k
Done Done
chrislema
178
15k
How STYLIGHT went responsive
nonsquared
92
4.8k
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!