スマレジエンジニアyushiのブログ

スマレジエンジニアのブログ

TypeScriptに入門してみた

最近TypeScript(TS)への注目度が高まっているように感じます。

先日リリースされたVue.js3もTypeScriptで記述されています。

 

yushi-dev.hatenablog.com

  

そこで今回は、書籍を読みつつ、TypeScriptに入門してみました。

 

速習 TypeScript

こちらの書籍で学習しました。kindle unlimitedで0円、お得です。

綺麗にまとまっていて、さくっと読むのに合った良書と思います。

 

速習 TypeScript 第2版 速習シリーズ

速習 TypeScript 第2版 速習シリーズ

 

 

Playground 

実際にソースを書いてみるためのPlayground環境も用意しました。

Docker、npm/yarn、Makefileなどを使っています。

github.com

 

公式もPlaygroundを用意してくれているのですが、勉強のため...。

www.typescriptlang.org

 

 

 

 

所感

内容は本書に任せるとして、所感を簡単にまとめます。

 

静的型付けの言語経験があれば基本は押さえられる

Javaでもswiftでも、静的型付けの言語の経験があれば、大枠はすぐ理解できそうです。

一方で、後述の通りそうは行かない機能も多々あります。

 

swiftっぽい

前から思ってましたが、`?`とか`!`とかオプショナルチェイニングとか、メソッドの引数が`変数名: 型`となっているところとか、swiftの機能とかなり近いなと感じました(差異はありますが、概要として...)。

kotlinも近いですよね。

もっとも何が起源なのか(どれが先か、はたまた別の言語が元なのか)、知らないのですが...。教えて欲しいです。

Nullable周りの機能は、多言語で経験がないと最初戸惑うかもしれません。

オプショナルチェイニングは最近のJSにも導入されていますが。

ちなみにデコレータもPythonでしか見たことなかったのですが、これも歴史が気になります。

 

型の扱いは、かなり機能が豊富

文字列リテラル、オブジェクト型リテラル、mapped types、conditional types、ユーティリ型とか、型周りの機能がたくさんあります...。`Type`Scriptと言うだけはあります。

「静的型付けの言語経験があれば基本は押さえられる」と書きましたが、この辺の高度な機能を使い始めると思ってない結果に結構なりそうに思います...。Compile Errorで止まるから大丈夫だろうとは思うのですが、注意と慣れが必要な予感がします。

 

わからなかったこと1 ... Vueとの相性

Vueと組み合わせて使った時の使用感は、よくわかりません。

Vue3はかなり対応したのかなと思うのですが、Vue2だとどうなのか、さらに調査が必要です。

jp.vuejs.org

 

わからなかったこと2 ... JavaScriptとの併用

TypeScriptはJavaScriptに変換する言語なので、やってやれないことはないだろうと思うのですが、これもさらに調査が必要です。

 

まとめ

今回は基本的な仕様をさらっただけなので、導入にはまだまだ調査が必要そうです。

言語仕様としては、豊富な型機能が少し厄介でもありそうなこと、Vue.js等JSライブラリとの併用あたりが壁になる気がします。

 

今週はフィロソフィーのダンスの新譜をヘビロテしていました。


フィロソフィーのダンス「ドント・ストップ・ザ・ダンス」MV