5
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

MYJLabAdvent Calendar 2020

Day 2

ブログをTypeScriptで書き直してみた

Last updated at Posted at 2020-12-02

M2のmarutakuです。今年もあっという間にアドベントカレンダーの時期になってしまいました。去年は優秀な同期・後輩たちの協力でなんとかアドベントカレンダーを完走することができたので、今年も頑張りたいと思います。

何をやったか

自分でクソザコエンジニア奮闘記というブログを作っていました。
Image from Gyazo
技術的な話は過去の自分の記事をみていただければある程度はわかってもらえると思います。静的サイトジェネレータにGatsby.jsを使用していたのですが、自分でコードを書く箇所は通常のJavaScriptでReactを書いている状態でした。 
これまで何も問題はなかったのですが、 漠然とTypeScriptで書き直したいなーとは思ってしました。そんな時に、TAをやっている授業内でTypeScriptを使用することがあったので、勉強を兼ねてこの機会にブログをTypeScriptで書き直すことにしました。

TypeScriptのお勉強

自分はTypeScriptをほとんど触って来なかったので、まずはTypeScriptの勉強から始めることにしました。とりあえずはTypeScriptの公式サイトにある、The TypeScript Handbookを一周しました。
Gatsby.jsはテンプレートなどをReactで書く必要があるので、ReactのチュートリアルをTypeScriptで書き直して勉強しました。

実際に書き出す

お勉強が終わったところで実際にコードを書き出して行きます。
Gatsby.jsにはスターターライブラリと呼ばれるテンプレートが存在しています。今まではgatsby-starter-lumenというスターターを使っっていたのですが、TypeScriptに対応していなかったので今回はgatsby-starter-typescript-contentfulを使用しました。
Gatsby.jsの中ではデータをGraphQLを用いてデータを扱うのですが、 gatsby-plugin-graphql-codegenを用いることでTypeScriptのなかで使う型定義を自動生成することができます。自分は起動時に自動生成が実行されてほしいので、npm startで開発サーバを立ち上げる前にコマンドを実行するようにしました。

// package.jsonのscripts一部
"start": " graphql-codegen --config codegen.yml && npm run develop"

終わりに

思ったより書くことがなかったので、これで終わりです。作ったブログにはいくつか問題はありますが、比較的簡単にTypeScriptに移行することができました。 まだまだ勉強中なので、間違っている箇所があれば教えていただきたいです。

5
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?