2019年5月31日金曜日

読書環境

開発環境

Programming TypeScript: Making Your JavaScript Applications Scale (Boris Cherny(著)、O'Reilly Media)を入手した理由、そしてCHAPTER 2(TypeScript: A 10_000 Foot View)、Exercises(15)のまで読んだ感想、そしてExercises(15)の解答を求めてみる。

以前はJavaScriptを好んで書いてたし、書く必要があったりもしたけど、最近はJavaScriptを書く必要があまりなく、あまり好んで書くことがなかったり。というのも、元々クラスベースのオブジェクト指向ではないところがお気に入りだったりしたけど、class構文が導入されたりしてそうでは無くなってきたり、JavaScriptっぽくないなぁと感じたから。自分自身が書く場合はあえて使わなければいいだけだけど、他の人の書いたコードを読と出てくるので避けることが出来ず。

ただ、よくよく考えてみれば、特別classベースのオブジェクト指向を好まない訳ではなく、普段はPythonでコードを書くことが多く、実際にクラスを使うことが多かったり。だから、あえてJavaScriptを使う必要がある訳ではないけど、あえて避ける必要もないかなぁと思ってまたJavaScriptをちょっとずつ使ってみようかなぁと思うように。

それで、最新のJavaScriptのclass等についてちょっと調べてみたら、かなり変わってる印象を受ける。そしてTypeScriptの存在も知る。

そしたらTypeScriptは、最新のJavaScriptがJavaScriptっぽくなくなったなぁと感じたのをさらにJavaScriptっぽくなくした感じの印象を持つ。TypeScriptはJavaScriptのスーパーセットって位置付け(?)だからそうなのかも。

それで、せっかくならJavaScriptっぽくなくなったなぁと感じた最新のJavaScriptを書くより、さらにJavaScriptっぽくないTypeScriptを書く方が新しい言語を学習する気持ちで取り組めて楽しいかなぁと思ってTypeScriptを学習してみることに。

そんなことを考えてる時に、本著を見つけたから入手。

Chapter 2まで読んだところでのTypeScriptの印象は、特に型を記述した場合はPythonの型注釈をさらに良くした感じ。というのはPythonは型注釈はあくまで目安だったり、ドキュメントのためだったりで、実際に実行する時には違う型でもエラーにならないけど、TypeScriptの場合はコードを書いてる段階でテキストエディタが問題を教えてくれたり、コンパイル出来なかったりするから。(もしかしたらPythonも型注釈を考慮してエラーとか警告をしてくれるIDEがあったりするのかも。)他は今の所あまりJavaScriptと変わらない印象。

ということで、早速 CHAPTER 2(TypeScript: A 10_000 Foot View)、Exercises(15)の解答を求めてみる。

コード

TypeScript

const a = true ? 10 : null;
console.log(typeof(a))
console.log(a)

入出力結果(Bash、cmd.exe(コマンドプロンプト)、Terminal)

$ tsc
$ node dist/index.js 
number
10
$ 

aは定数の数値型(number)だけど、型推論では数値とはならないみたい。

ただ、右側の評価する前の型とは一致してるから、これを型推論できてないとはいえないかも。他にもっと複雑で本当に型推論できない場合が今後出て来ることに期待。

0 コメント:

コメントを投稿