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
Unknownのことをちゃんと知りたい_関西フロントエンド忘年会
[email protected]
×...
Search
is_ryo
December 06, 2024
Technology
46
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Unknownのことをちゃんと知りたい_関西フロントエンド忘年会
[email protected]
× KINTOテクノロジーズ
is_ryo
December 06, 2024
More Decks by is_ryo
See All by is_ryo
生成AIとエンジニアの仕事と私~実践知を添えて~
is_ryo
0
120
tRPC入門
is_ryo
1
330
TypeScriptでWebAssemblyに入門しよう
is_ryo
0
380
Honoが良さそう🔥
is_ryo
1
1.4k
LambdaのNodejsをアップデートしたら困った話
is_ryo
2
1.4k
頑張らないオレオレVuex規約を作った話
is_ryo
4
2.9k
AppSyncで始めるGraphQL
is_ryo
1
650
Other Decks in Technology
See All in Technology
Kiro Ambassador を目指す話
k_adachi_01
0
110
ACE-Step-1.5で見る 音楽生成AIのしくみと“破綻だけ直す”Retake機能の開発【zennfes spring 2026 登壇資料】
personabb
1
530
プロダクト開発から業務改善コンサルまで。事業全体へ「染み出す」ことで広がるエンジニアの可能性
ham0215
0
140
iAEONの段階的リアーキテクト戦略 / iAEON's_Gradual_Re-architecture_Strategy
aeonpeople
0
220
不要なレビューをAIにまかせて AIコーディングの環境改善を加速した
shoota
1
220
【NRUG vol.18】なぜ多くのオブザーバビリティ導入は失敗するのか
nrug_member
0
180
AWS Security Agent といっしょに脅威モデリングをやってみよう
amarelo_n24
0
150
日本 Fintech 未来予測レポート 2027〜2028年(手動編集版)
8maki
0
2.4k
AIソロプレナー時代に2ヶ月で20人増員した事業創造会社の開発組織の話
miyatakoji
0
690
2026TECHFRESH畢業分享會 - Lightning Talk - 打造精準高效的 MCP 設計模式與測試實務
line_developers_tw
PRO
0
1.2k
生成 AI 実践ガイド (概略版) AIガバナンス編
asei
0
100
【NRUG vol.18】KubernetesにおけるNew Relicデータ取得量削減の考え方
nrug_member
0
160
Featured
See All Featured
Build your cross-platform service in a week with App Engine
jlugia
234
18k
Noah Learner - AI + Me: how we built a GSC Bulk Export data pipeline
techseoconnect
PRO
0
200
SEO for Brand Visibility & Recognition
aleyda
0
4.6k
HDC tutorial
michielstock
2
720
Ruling the World: When Life Gets Gamed
codingconduct
0
250
Become a Pro
speakerdeck
PRO
31
6k
What’s in a name? Adding method to the madness
productmarketing
PRO
24
4.1k
Crafting Experiences
bethany
1
180
Bridging the Design Gap: How Collaborative Modelling removes blockers to flow between stakeholders and teams @FastFlow conf
baasie
0
590
The State of eCommerce SEO: How to Win in Today's Products SERPs - #SEOweek
aleyda
2
11k
Amusing Abliteration
ianozsvald
1
210
Data-driven link building: lessons from a $708K investment (BrightonSEO talk)
szymonslowik
1
1.1k
Transcript
Unknownのことをちゃんと 知りたい 関西フロントエンド忘年会
[email protected]
× KINTOテクノロジーズ_2024/12/06
いずりょー #EngineeringManager #TypeScriptが好き #JavaScriptは嫌い #最近は生成 AIと戯れている #kansai.ts Organizer X →
@is_ryo Bluesky → is-ryo
今日は Unknownのことちゃんと 理解して使ってる? という話をします
質問 unknown型を 意識して使っている人
終 制作・著作 ━━━━━ いずりょー
結論 ちゃんとUnknownのことを理 解できたら anyはいらない (多分…きっと…知らんけど )
サバイバル TypeScriptによると • TypeScriptのunknown型は、型が何かわからないときに使う型です • unknown型にはどのような値も代入できます • unknown型はよく「型安全なany型」と言われ、any型と対比されます • any型はどのような型の変数にも代入できますが、unknown型の値は具
体的な型へ代入できません • などと書いてある
unknown型にはどのような値も代入できる
unknown型は「型安全な any型」
unknown型とany型の違い • unknown型もany型もどのような値も代入できる • unknown型はunknown型にしか再代入できない • any型に代入したオブジェクトのプロパティ、メソッドは使用することができ るが、unknown型は使用できないし実行もできない ◦ 意図しない実行時エラーを検知することができる
ざっくり言うと unknown型は安全に型を ぶっ飛ばして any型はTSを捨てる という感じ
any型を使っていいのは TSを捨てる覚悟のあるやつだけだ …
unknown型の使い方 • any型の値をより安全にする • 型アサーションの制約を回避する • TypeGuardを利用して正しい型をつける
None
None
まとめ • とりあえず「型が何かわからない 」という時に any型 を使うのではなくて unkonwn型 を使うことで堅牢なコードに1歩近づく • その結果コード量は増えるケースが多いとは思うので、そこはいい塩梅を
探す必要がある • (個人的には) 多少コード量が多くなっても any型 がない世界を目指した い ◦ コードレビューで any型 を排除する活動をし始めている
結論 ちゃんとUnknownのことを理 解できたら anyはいらない (多分…きっと…知らんけど )
Thanks!!!