読者です 読者をやめる 読者になる 読者になる

15 min/d

ぼうずやのにっき

Koa と TypeScript 2.0 beta をためした

旅行前の 2016-06-22koajs/koa の core っぽい部分を理解した。……はずだったのだけど、今日 bouzuya/alertwil のためにいざ書こうとするとよく分からなくて困った。旅行のごたごたで 2 週間の空白もあるし、もともと周辺の npm package を調べていないせいもある。

routing には alexmingoia/koa-router を使うつもりだ。 koajs/route という simple な router もあるのだけど、避けることにした。理由は koa-route の機能不足ではなく singleton になっている部分が気持ち悪いので避けた形だ。npm package は singleton を避けるべきだと思っている。 function / constructor などで複数の instance を作成できるようにすべきだと思っている。単一には利用者側ですれば良いだろう。

view には何も使わないつもりだ。tj/co-views を使うこともできるが使わない。co-views は tj/co-rendertj/consolidate.js を内部に使い template engine やその compiled view の cache を管理する。今回は json と twiml 。それも定型的なものだ。個別 file での view も不要だと思うので、あえて避けることにした。

あと TypeScript 2.0 beta をためしてみたのだけど、VS Code 側の対応が良くないのでやめた。具体的には VS Code 側での auto build で string | null | undefined などの 2.0 では正しい記述が Error になってしまう。typescript.tsserver.experimentalAutoBuild を有効にすると Error にならないのだけど、代わりにその他の箇所も含めて保存時に型検査されなくなる。明示的に Reload TypeScript Project すると検査してくれるのだけど、それはあんまりだ。まだ時期尚早ということだろう。VS Code の 8 月の update くらいには TypeScript 2.0 を本格的に使っていけると信じている。