TypeScript化の調査 2016年9月現在(React v15, TypeScript 2.0-rc)の話です。
いま開発しているウェブアプリのフロントエンドをTypeScript化しようと思ってちょっと調べてみたんですが、今やるのはいくらTypeScript推進派でもちょっと厳しいなと。
- TypeScriptでimportできるライブラリは、TypeScriptのコード(.ts)またはdts: TypeScript definition files (.d.ts) のみ
- Reactは素のJS + 一部FlowType なのでdtsの公式提供は期待できない
- DefinitelyTypedのdtsは手動でメンテナンスされているよう
- https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/react
- これが現在 v0.14 ベースで古い
- v15.3ベースに修正するにしても作業量が多すぎてつらい
将来的には、 ReactコードのほぼすべてにFlowTypeアノテーションがついてdtsがそこから自動生成されるというようにはできるだろうと思っているのですが、現状そうではないので、繰り返しになりますが現時点での導入はかなり厳しいと思います。
次のように、v15.3のランタイムとv0.14のdtsを組み合わせてなんとなく動かすことはできるんですが、たぶん茨の道だろうと思いますね…:
追記:
@__gfx__ --allowJsオプションありますよ
— Laco (@laco0416) September 12, 2016
@__gfx__ tscが受け付ける拡張子が.jsも増えるというだけで、.jsは型アノテーションが書かれていないだけのTypeScriptと認識されます ちょっと古いけど試している記事 https://t.co/D5SS5oy6pJ
— Laco (@laco0416) September 12, 2016
--allowJs
でとりあえず導入みたいなのはありかもしれないですね。TypeScriptの恩恵を受けられないので素のJSよりどのくらい楽になるかはちょっとやってみないとわかりませんが。