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
SWC Transformerから見るTypeScript関数記述ベストプラクティス
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Kaito Fujimura
May 11, 2024
Technology
1
540
SWC Transformerから見るTypeScript関数記述ベストプラクティス
Kaito Fujimura
May 11, 2024
Tweet
Share
More Decks by Kaito Fujimura
See All by Kaito Fujimura
iPhone Eye Tracking機能から学ぶやさしいアクセシビリティ
fujiyamaorange
0
990
Other Decks in Technology
See All in Technology
コンテナセキュリティの最新事情 ~ 2026年版 ~
kyohmizu
7
2.4k
20260204_Midosuji_Tech
takuyay0ne
1
160
usermode linux without MMU - fosdem2026 kernel devroom
thehajime
0
240
Agile Leadership Summit Keynote 2026
m_seki
1
680
Why Organizations Fail: ノーベル経済学賞「国家はなぜ衰退するのか」から考えるアジャイル組織論
kawaguti
PRO
1
220
Context Engineeringが企業で不可欠になる理由
hirosatogamo
PRO
3
680
20260208_第66回 コンピュータビジョン勉強会
keiichiito1978
0
200
Bill One急成長の舞台裏 開発組織が直面した失敗と教訓
sansantech
PRO
2
410
22nd ACRi Webinar - ChipTip Technology Eric-san's slide
nao_sumikawa
0
100
22nd ACRi Webinar - 1Finity Tamura-san's slide
nao_sumikawa
0
110
今こそ学びたいKubernetesネットワーク ~CNIが繋ぐNWとプラットフォームの「フラッと」な対話
logica0419
5
540
私たち準委任PdEは2つのプロダクトに挑戦する ~ソフトウェア、開発支援という”二重”のプロダクトエンジニアリングの実践~ / 20260212 Naoki Takahashi
shift_evolve
PRO
2
210
Featured
See All Featured
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4.2k
Conquering PDFs: document understanding beyond plain text
inesmontani
PRO
4
2.3k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
122
21k
Deep Space Network (abreviated)
tonyrice
0
67
From Legacy to Launchpad: Building Startup-Ready Communities
dugsong
0
140
Exploring anti-patterns in Rails
aemeredith
2
250
The AI Revolution Will Not Be Monopolized: How open-source beats economies of scale, even for LLMs
inesmontani
PRO
3
3.1k
What Being in a Rock Band Can Teach Us About Real World SEO
427marketing
0
180
Are puppies a ranking factor?
jonoalderson
1
2.7k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
47
7.9k
The untapped power of vector embeddings
frankvandijk
1
1.6k
How to Ace a Technical Interview
jacobian
281
24k
Transcript
SWC Transformer TypeScript TSKaigi 2024 @fujiyamaorange
Pay / Biome Utility Types Pick Pay for Business fujiyamaorange
TypeScript SWC Transform emit
None
None
Function Expression Arrow Function Function Declaration
None
SWC Transformer
TypeScript SWC Transform emit
SWC ~Speedy Web Compiler~ Next.js 12 Rust Babel 17 Rust
SWC (TypeScript Babel )
SWC Transformer
React 3 ※React =JSX alt data-testid
Before After
Before After alt
Before After data-testid
None
TypeScript SWC Transform emit
20.93s 22.78s 22.59s Transform 12000 React cargo test --example --
--test-threads=1 Transform
SWC Transformer
I/O
20.93s 22.78s 22.59s 17.70s 19.56s 19.31s (Transform) 3.23s 3.22s 3.28s
Transform
Transform ( )
Transform
Transform SWC fork SWC create
Transform SWC fork SWC create
( ) parse 919.22ms 959.42ms 929.58ms 931.66ms transform 56.26ms 61.25ms
58.77ms 15.72ms emit 8.75s 9.70s 9.56s 7.22s all 20.93s 22.78s 22.59s 17.70s ※
TypeScript SWC Transform emit
emit e.#mtd_name(self) mtd_name SWC AST Node SWC 200 AST Node
( : →FnDecl)
FnDecl AST emit!
emit AST Node AST emit
None
TypeScript SWC Transform emit
None
TypeScript (function) (function expression) (Arrow function expressions) SWC SWC Next.js
Compiler Trait swc_ecma_visit::VisitMut TSKaigi Canva ~Gray Purple Isometric Elements & Mockups 5G Technology Technology Presentation~ carbon