WEB系言語として採用することがスタンダートとなりつつあるTypeScriptの学習を行いました。
学習に利用したのはこちらの本です。
技術の勉強をする際は、いつもハンズオンで学べる著書を買うようにしています。
TypeScriptのハンズオン本の中だと、この本が一番評価が高めだったのでこちらに決めました。
一応作った物をgithubに挙げているので、暇な方はみて下さい。
ヒット&ブロー(数字あてゲーム)
GitHub - Saburi314/hit_and_blow: NodeとTypeScriptの学習用NodeとTypeScriptの学習用. Contribute to Saburi314/hit_and_blow development by creating an account on GitH...TODOアプリ
GitHub - Saburi314/browser-app-typescriptContribute to Saburi314/browser-app-typescript development by creating an account on GitHub.
所感
本著の内容としてはTypeScriptの型付けやコンパイルによって、いかにJavaScriptの世界に秩序をもたらすことができるか?という解説に終始していました。
とにかく型に関する記述が多かったです。
JavaScriptではなくTypeScriptをわざわざ使う一番の理由が「静的型付け」や「コンパイル」機能があることです。
動的型付けやコンパイルがない言語では、多少適当に書いてもコードが走ってしまうことがあります。
実装が不十分でも、エラーを吐きながら一応は動いてしまうので、問題に気付けないままシステムが運用されている状況を何度も目にしてきました。
そういった状況を防ぐ為に、定められた規律の元でJSが書かれるよう仕組みを作ったのTypeScriptです。
私自身は元々Java(静的型付け&コンパイルが必要)をやっていましたが、転職してPHP(動的型付け&コンパイル不要)を使うことになったので、PHPのようなコンパイルを通さない言語に最初は違和感がありました。
結構適当に書いても問題なく動いてしまうので、逆にそれが怖かったです。
初心者がコードを書く場合は、動的型付けの方が動くもの手早くを見ることができるで良いと思います。
しかし、実務レベルのコードを書く場合は、この自由さは大きなデメリットになりえます。
今私が担当しているほとんどの案件では、素のJavascriptを使っているシステムが多いです。
その為、機能追加やバグ修正が増えてくると段々と無秩序な記載が増えて、コンソールエラーが出てしまっている場合も見受けられます。
こういった状況を何とかしたいと思っていましたが、TypeScriptを導入することでこのような事態を防ぐことができそうだと希望が見えました。
また、TypeScriptはIDEなどのサポートが豊富に受けられるのもよい点だと思いました。
逆にTypeScriptを導入するデメリットとしては、設定やライブラリの導入などで手間がかかる点が気になりました。
JavaScriptであればしなくてもよいことを環境構築時にする必要が出てくるので、その点は仕方ないと同時に複雑化する要因になりえると感じました。
学習コストについては、JavaScriptを使ったことがあり、コンパイル言語も過去に触った経験があるのでそこまで気になりしませんでした。
本著の後半ではReactについてもハンズオンで学習できるようになっておりました。
TypeScriptはReactとも相性が良い点がGoodですね。
・TypeScriptは「型の力」でJavaScriptに秩序をもたらし、バグ予防・可読性向上に寄与
・導入コストはあるものの、チーム開発や長期運用を見据えると十分にペイできる
・ReactやNext.jsなど、モダンフレームワークとの相性も抜群
まとめ
今後AI技術の進展により、将来的には「自然言語でAIエージェントに依頼するだけ」の開発スタイルが主流になるかもしれません。
しかし、その過渡期においては、依然として人間が書くコードの品質がシステムの信頼性を左右します。
TypeScriptはその橋渡し役として、今後も重要な位置を占め続けると思います。