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のことをちゃんと知りたい_関西フロントエンド忘年会2024@HACK.BAR ×...
Search
is_ryo
December 06, 2024
Technology
0
14
Unknownのことをちゃんと知りたい_関西フロントエンド忘年会2024@HACK.BAR × KINTOテクノロジーズ
is_ryo
December 06, 2024
Tweet
Share
More Decks by is_ryo
See All by is_ryo
tRPC入門
is_ryo
1
230
TypeScriptでWebAssemblyに入門しよう
is_ryo
0
240
Honoが良さそう🔥
is_ryo
1
1k
LambdaのNodejsをアップデートしたら困った話
is_ryo
2
1.3k
頑張らないオレオレVuex規約を作った話
is_ryo
4
2.7k
AppSyncで始めるGraphQL
is_ryo
1
600
Other Decks in Technology
See All in Technology
20250307_エンジニアじゃないけどAzureはじめてみた
ponponmikankan
2
200
どちらかだけじゃもったいないかも? ECSとEKSを適材適所で併用するメリット、運用課題とそれらの対応について
tk3fftk
2
310
Amazon Aurora のバージョンアップ手法について
smt7174
2
190
手を動かしてレベルアップしよう!
maruto
0
260
IAMのマニアックな話2025
nrinetcom
PRO
6
1.5k
エンジニア主導の企画立案を可能にする組織とは?
recruitengineers
PRO
1
320
アジリティを高めるテストマネジメント #QiitaQualityForward
makky_tyuyan
1
490
20250309 無冠のわたし これからどう先生きのこれる?
akiko_pusu
9
850
プルリクエストレビューを終わらせるためのチーム体制 / The Team for Completing Pull Request Reviews
nekonenene
3
1.8k
目標と時間軸 〜ベイビーステップでケイパビリティを高めよう〜
kakehashi
PRO
8
1.1k
困難を「一般解」で解く
fujiwara3
8
2.4k
OPENLOGI Company Profile
hr01
0
60k
Featured
See All Featured
Docker and Python
trallard
44
3.3k
Building Better People: How to give real-time feedback that sticks.
wjessup
367
19k
Site-Speed That Sticks
csswizardry
4
420
jQuery: Nuts, Bolts and Bling
dougneiner
63
7.7k
Automating Front-end Workflow
addyosmani
1369
200k
[RailsConf 2023] Rails as a piece of cake
palkan
53
5.3k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
115
51k
Fontdeck: Realign not Redesign
paulrobertlloyd
83
5.4k
Making Projects Easy
brettharned
116
6k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
32
2.2k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
33
2.1k
Building Flexible Design Systems
yeseniaperezcruz
328
38k
Transcript
Unknownのことをちゃんと 知りたい 関西フロントエンド忘年会2024@HACK.BAR × 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!!!