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
ts-morphで簡単に始めるAST操作 / ast-manipulation-with-ts...
Search
aose
October 30, 2024
Technology
0
1k
ts-morphで簡単に始めるAST操作 / ast-manipulation-with-ts-morph
簡単に始めるシリーズ第二弾として、TypeScriptにおけるASTをあまり知らない方や、まだ触ったことがない方に向けて、簡単にできるASTの操作・ライブラリについてご紹介します。
aose
October 30, 2024
Tweet
Share
More Decks by aose
See All by aose
alien-signals と自作 OSS で実現する フレームワーク非依存な ロジック共通化の探求 / Exploring Framework-Agnostic Logic Sharing with alien-signals and Custom OSS
aoseyuu
4
6.8k
UnJSで簡単に始めるCLIツール開発 / cli-tool-development-with-unjs
aoseyuu
2
920
Other Decks in Technology
See All in Technology
Digitization部 紹介資料
sansan33
PRO
1
6.4k
純粋なイミュータブルモデルを設計してからイベントソーシングと組み合わせるDeciderの実践方法の紹介 /Introducing Decider Pattern with Event Sourcing
tomohisa
1
130
AIエージェントを5分で一気におさらい!AIエージェント「構築」元年に備えよう
yakumo
1
130
2025年の医用画像AI/AI×medical_imaging_in_2025_generated_by_AI
tdys13
0
290
20251225_たのしい出張報告&IgniteRecap!
ponponmikankan
0
110
AIと融ける人間の冒険
pujisi
0
110
[PR] はじめてのデジタルアイデンティティという本を書きました
ritou
0
740
研究開発部メンバーの働き⽅ / Sansan R&D Profile
sansan33
PRO
4
21k
Oracle Database@AWS:サービス概要のご紹介
oracle4engineer
PRO
2
660
2025年のデザインシステムとAI 活用を振り返る
leveragestech
0
660
モノタロウ x クリエーションラインで実現する チームトポロジーにおける プラットフォームチーム・ ストリームアラインドチームの 効果的なコラボレーション
creationline
0
280
名刺メーカーDevグループ 紹介資料
sansan33
PRO
0
1k
Featured
See All Featured
Agile that works and the tools we love
rasmusluckow
331
21k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
46
2.6k
Designing for Performance
lara
610
70k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
34
2.6k
Why You Should Never Use an ORM
jnunemaker
PRO
61
9.7k
What does AI have to do with Human Rights?
axbom
PRO
0
1.9k
Digital Ethics as a Driver of Design Innovation
axbom
PRO
0
140
Leading Effective Engineering Teams in the AI Era
addyosmani
9
1.4k
Intergalactic Javascript Robots from Outer Space
tanoku
273
27k
Unsuck your backbone
ammeep
671
58k
Lightning talk: Run Django tests with GitHub Actions
sabderemane
0
97
B2B Lead Gen: Tactics, Traps & Triumph
marketingsoph
0
37
Transcript
ts-morphで簡単に始めるAST操作
Speaker 株式会社ヤプリ フロントエンドエンジニア 青木 優弥 / Aose Yuu • 2023/11〜
ヤプリjoin 来月からヤプリ2年目突入 • Vue Fes ボランティアスタッフ
None
None
ASTとは?
AST ↕ 抽象構文木
抽象構文木(AST:Abstract Syntax Tree) • プログラムのソースコードを階層的に表現するデータ構造 • ツリー構造で、各ノードがプログラムの構成要素を表す • ノード同士の親子関係=ソースコードの構造的な関係
None
ASTでできること • コードの解析(Linter, Formetter) • コードの変換・生成 • リファクタリング
ASTでできること • コードの解析(Linter, Formetter) • コードの変換・生成 • リファクタリング ⬇
気合いの正規表現🔥 漢の文字列置換💪 からの卒業
ts-morphとは?
ts-morph ↕ TypeScript Compiler APIの ラッパーライブラリ
超簡単な例
None
None
None
🤮
None
🥰
None
ts-morphを使った実例 vuex → pinia:簡単&部分的な例
None
None
None
None
None
None
ts-morphを使って AST操作を簡単に始めよう!