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
本当は怖い@types/node
Search
Yoshiaki Togami/戸上義章
December 14, 2023
0
100
本当は怖い@types/node
https://nihonbashi-js.connpass.com/event/301794/
Yoshiaki Togami/戸上義章
December 14, 2023
Tweet
Share
More Decks by Yoshiaki Togami/戸上義章
See All by Yoshiaki Togami/戸上義章
Rust製TypeScriptコンパイラ stcの現状と今後
yoshiaki_togami
0
690
JavaScript Testing Framework: Under the Hood(JSConfJP2022)
yoshiaki_togami
0
3.8k
Featured
See All Featured
Pencils Down: Stop Designing & Start Developing
hursman
117
11k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
14
1.6k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
358
22k
Embracing the Ebb and Flow
colly
80
4.2k
The Art of Programming - Codeland 2020
erikaheidi
43
12k
Typedesign – Prime Four
hannesfritz
36
2.1k
How to Ace a Technical Interview
jacobian
273
22k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
11
1k
The MySQL Ecosystem @ GitHub 2015
samlambert
244
12k
Navigating Team Friction
lara
179
13k
Producing Creativity
orderedlist
PRO
338
39k
Fantastic passwords and where to find them - at NoRuKo
philnash
39
2.5k
Transcript
本当は怖い@types/node 2023/12/14 Nihonbashi.js #8
$WHOAMI - 4月から社会人フロントエンドエンジニア - コンパイラとか好き
宣伝 12/16にFrontend Testingについて話します!14:00-15:30です
注意 - ほとんどの人にとって雑学 - 実用上の問題になることは皆無 - “tscを代替を作るんだ!!”という方には若干役立つかもしれません😇
@types/node使ってますか?
@types/node - Node.jsのためのTypeScript型定義を提供するnpmパッケージ - console.logの型やprocessの型など
index.d.ts(エントリーポイント) - 上から順に読み込まれる - globals.d.ts - 後続のファイルで使うglobal変数の型定義の集まりのはず。。
globals.d.ts(抜粋) - declare global {} - Moduleでグローバル変数を宣言できる 特別な構文(Global Augmentation) -
一部の型が後続ファイル中の宣言を暗 黙に(明示的なimport/requireなしで) 参照している😇
暗黙依存三銃士 in globals.d.ts
Q:なぜ暗黙の参照が可能だったのか A: (理由はよくわからないが) 別ファイルのglobal{} 内で 宣言されている型を参照して いたから コレを参照している event.d.ts
まとめ 🤔 見た目上の依存関係
まとめ 🤔🤔🤔 実際の依存関係 🤔🤔🤔
誰が困るのか - tscをRIIRしたい方 - 並列解析できない - @typesの普及具合から対応は必須 - global{}だけ先に解析する? -
Module loader書き直しレベル
最後に - 実装の問題というより既存のnodeのAPIを後付けで表現しようとした結果? - そもそもtscはどう解析している? - tscや@types事情に詳しい方がいたら教えてくださいmm