型付きで行うVSCode拡張機能開発 / VSCode Meetup #31
by
mazrean
Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
型付きで行うVSCode拡張機能開発 VS Code Meetup #31 @mazrean
Slide 2
Slide 2 text
mazrean 2 ◼ 東工大 修士2年 ⚫4時間後には𝑺𝒄𝒊𝒆𝒏𝒄𝒆 𝑻𝒐𝒌𝒚𝒐 ⚫ソフトウェア工学 ◼ デジタル創作同好会traP ⚫Goでバックエンドの開発 ◼ 趣味でVSCode拡張機能製作中 今日はこれの話 @mazrean22 / @mazrean
Slide 3
Slide 3 text
拡張機能開発でのTypeScriptの利用 3 ◼ 拡張機能開発では簡単にTypeScriptを使用できる ⚫コード生成ツール[1]にTypeScriptを利用するオプション ◼ VSCode APIにもしっかり型が付く! [1]: https://www.npmjs.com/package/generator-code
Slide 4
Slide 4 text
package.jsonに記述する設定 4 ◼ package.jsonへ記述する設定が存在 ⚫コマンド ⚫設定項目 コマンド 設定項目
Slide 5
Slide 5 text
package.json内の設定とTypeScript 5 ◼ 設定なしでVSCode APIを利用すると正常に動作しない! ◼ package.jsonはVSCode APIの型定義に反映されない → package.jsonを反映して型をつけたい! 例) コマンドのハンドラー設定 コマンド名: string型 → 実行までエラーなし
Slide 6
Slide 6 text
手順 6 1. package.jsonのTypeScriptへの変換 2. 型の作成 3. ラッパー関数作成 サンプル: https://github.com/mazrean/typed-hello-world
Slide 7
Slide 7 text
1. package.jsonのTypeScriptへの変換 7 ◼ jsonはそのままでは型定義に利用できない ⚫型定義にはreadonlyなオブジェクトのみ利用可能 ⚫現状、jsonはimport時にreadonlyにならない…[2] ◼ TypeScriptファイルに転記 [2]: https://github.com/microsoft/TypeScript/issues/32063 readonly化
Slide 8
Slide 8 text
1. package.jsonのTypeScriptへの変換 8 毎回転記するのは大変 → スクリプトを用意すると楽
Slide 9
Slide 9 text
2.型の作成 9 ◼ 書き出したTypeScriptを基に型を作成する ◼ 型が複雑になるものもあるが頑張る ⚫LLMの力を借りると楽になる
Slide 10
Slide 10 text
3.ラッパー関数作成 10 ◼ 型を設定したVSCode APIのラッパー関数を作る
Slide 11
Slide 11 text
デモ 11 誤ったコマンドにハンドラーを設定しようとするとエラー → 設定ミス・typoに気づきやすい!
Slide 12
Slide 12 text
まとめ 12 ◼ package.jsonに記述する設定項目が存在 ⚫設定を忘れると正常に動作しない ◼ VSCode APIの型定義にはpackage.jsonが反映されない ◼ 型付きのラッパー関数を作るとミスに気付ける!