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
Kaito Fujimura
May 11, 2024
Technology
1
520
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
860
Other Decks in Technology
See All in Technology
OCI Network Firewall 概要
oracle4engineer
PRO
1
7.8k
ユニットテストに対する考え方の変遷 / Everyone should watch his live coding
mdstoy
0
120
生成AI_その前_に_マルチクラウド時代の信頼できるデータを支えるSnowflakeメタデータ活用術.pdf
cm_mikami
0
100
extension 現場で使えるXcodeショートカット一覧
ktombow
0
200
ZOZOのAI活用実践〜社内基盤からサービス応用まで〜
zozotech
PRO
0
160
業務自動化プラットフォーム Google Agentspace に入門してみる #devio2025
maroon1st
0
180
「Verify with Wallet API」を アプリに導入するために
hinakko
1
230
Oracle Base Database Service 技術詳細
oracle4engineer
PRO
11
77k
SOC2取得の全体像
shonansurvivors
1
360
それでも私はContextに値を詰めたい | Go Conference 2025 / go conference 2025 fill context
budougumi0617
4
1.2k
Railsアプリケーション開発者のためのブックガイド
takahashim
14
6.1k
データエンジニアがこの先生きのこるには...?
10xinc
0
440
Featured
See All Featured
How to Think Like a Performance Engineer
csswizardry
27
2k
How To Stay Up To Date on Web Technology
chriscoyier
791
250k
Writing Fast Ruby
sferik
629
62k
Mobile First: as difficult as doing things right
swwweet
224
10k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.5k
Reflections from 52 weeks, 52 projects
jeffersonlam
352
21k
Agile that works and the tools we love
rasmusluckow
331
21k
KATA
mclloyd
32
15k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
29
2.6k
How to Ace a Technical Interview
jacobian
280
23k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
32
2.2k
RailsConf 2023
tenderlove
30
1.2k
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