最近TypeScript(TS)への注目度が高まっているように感じます。
先日リリースされたVue.js3もTypeScriptで記述されています。
そこで今回は、書籍を読みつつ、TypeScriptに入門してみました。
速習 TypeScript
こちらの書籍で学習しました。kindle unlimitedで0円、お得です。
綺麗にまとまっていて、さくっと読むのに合った良書と思います。
Playground
実際にソースを書いてみるためのPlayground環境も用意しました。
Docker、npm/yarn、Makefileなどを使っています。
公式もPlaygroundを用意してくれているのですが、勉強のため...。
所感
内容は本書に任せるとして、所感を簡単にまとめます。
静的型付けの言語経験があれば基本は押さえられる
Javaでもswiftでも、静的型付けの言語の経験があれば、大枠はすぐ理解できそうです。
一方で、後述の通りそうは行かない機能も多々あります。
swiftっぽい
前から思ってましたが、`?`とか`!`とかオプショナルチェイニングとか、メソッドの引数が`変数名: 型`となっているところとか、swiftの機能とかなり近いなと感じました(差異はありますが、概要として...)。
kotlinも近いですよね。
もっとも何が起源なのか(どれが先か、はたまた別の言語が元なのか)、知らないのですが...。教えて欲しいです。
Nullable周りの機能は、多言語で経験がないと最初戸惑うかもしれません。
オプショナルチェイニングは最近のJSにも導入されていますが。
ちなみにデコレータもPythonでしか見たことなかったのですが、これも歴史が気になります。
型の扱いは、かなり機能が豊富
文字列リテラル、オブジェクト型リテラル、mapped types、conditional types、ユーティリ型とか、型周りの機能がたくさんあります...。`Type`Scriptと言うだけはあります。
「静的型付けの言語経験があれば基本は押さえられる」と書きましたが、この辺の高度な機能を使い始めると思ってない結果に結構なりそうに思います...。Compile Errorで止まるから大丈夫だろうとは思うのですが、注意と慣れが必要な予感がします。
わからなかったこと1 ... Vueとの相性
Vueと組み合わせて使った時の使用感は、よくわかりません。
Vue3はかなり対応したのかなと思うのですが、Vue2だとどうなのか、さらに調査が必要です。
わからなかったこと2 ... JavaScriptとの併用
TypeScriptはJavaScriptに変換する言語なので、やってやれないことはないだろうと思うのですが、これもさらに調査が必要です。
まとめ
今回は基本的な仕様をさらっただけなので、導入にはまだまだ調査が必要そうです。
言語仕様としては、豊富な型機能が少し厄介でもありそうなこと、Vue.js等JSライブラリとの併用あたりが壁になる気がします。
今週はフィロソフィーのダンスの新譜をヘビロテしていました。