$30 off During Our Annual Pro Sale. View Details »
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Unknownのことをちゃんと知りたい_関西フロントエンド忘年会
[email protected]
×...
Search
is_ryo
December 06, 2024
Technology
0
39
Unknownのことをちゃんと知りたい_関西フロントエンド忘年会
[email protected]
× KINTOテクノロジーズ
is_ryo
December 06, 2024
Tweet
Share
More Decks by is_ryo
See All by is_ryo
生成AIとエンジニアの仕事と私~実践知を添えて~
is_ryo
0
80
tRPC入門
is_ryo
1
280
TypeScriptでWebAssemblyに入門しよう
is_ryo
0
310
Honoが良さそう🔥
is_ryo
1
1.2k
LambdaのNodejsをアップデートしたら困った話
is_ryo
2
1.4k
頑張らないオレオレVuex規約を作った話
is_ryo
4
2.8k
AppSyncで始めるGraphQL
is_ryo
1
630
Other Decks in Technology
See All in Technology
寫了幾年 Code,然後呢?軟體工程師必須重新認識的 DevOps
cheng_wei_chen
1
1.4k
Lessons from Migrating to OpenSearch: Shard Design, Log Ingestion, and UI Decisions
sansantech
PRO
1
130
チーリンについて
hirotomotaguchi
6
2k
Lambdaの常識はどう変わる?!re:Invent 2025 before after
iwatatomoya
1
570
今からでも間に合う!速習Devin入門とその活用方法
ismk
1
720
ガバメントクラウド利用システムのライフサイクルについて
techniczna
0
190
「Managed Instances」と「durable functions」で広がるAWS Lambdaのユースケース
lamaglama39
0
320
AI-DLCを現場にインストールしてみた:プロトタイプ開発で分かったこと・やめたこと
recruitengineers
PRO
2
150
SSO方式とJumpアカウント方式の比較と設計方針
yuobayashi
7
690
[JAWS-UG 横浜支部 #91]DevOps Agent vs CloudWatch Investigations -比較と実践-
sh_fk2
2
260
Edge AI Performance on Zephyr Pico vs. Pico 2
iotengineer22
0
160
初めてのDatabricks AI/BI Genie
taka_aki
0
190
Featured
See All Featured
BBQ
matthewcrist
89
9.9k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
5.8k
Documentation Writing (for coders)
carmenintech
76
5.2k
How STYLIGHT went responsive
nonsquared
100
6k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
249
1.3M
Speed Design
sergeychernyshev
33
1.4k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
34
2.6k
What’s in a name? Adding method to the madness
productmarketing
PRO
24
3.8k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
132
19k
StorybookのUI Testing Handbookを読んだ
zakiyama
31
6.5k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
196
70k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.6k
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!!!