kenjuの日記

About Programming, Mathematics and Security

TypeScript導入の目的と導入のデメリット

社内にTypeScriptを導入した際に書いたアナウンスブログの抜粋。

解決したい課題

  • JavaScriptコードベースの肥大化による ユーザーへの価値提供スピードの低下
    • 開発効率低下
      • 型がないためデバックがしづらい
      • エディターの支援機能が限定的
    • 品質低下

課題に対する打ち手 = メリット

  • 肥大化するコードベースに太刀打ちするための手段としてTypeScriptを導入する
    • 開発効率向上
      • 型導入によるコードの宣言性の向上=可読性の向上
      • エディタの支援機能の恩恵
    • 品質向上

デメリット

  • 学習コスト
    • とはいえ基本的にPure JSも同時に使い続けることができるため、導入ハードルは割に合うと判断
  • TypeScriptへのロックインはどうする?
    • 「TypeScriptできれいに書いたコードは–target es6で出力すると、単に型注釈を取り除いただけの素直なJavaScriptが出力」されるため、問題ないと判断

開発をする上での注意点

  • とりあえず開発するのであれば、基本的にはBabelを用いてES6/7 Syntaxで書いていたそれまで通りでも問題ない
    • TypeScriptはES6~ のシンタックスを導入しているので、Babelを書いていた頃と同じ感覚でコードを書ける
    • 拡張子を .ts/.tsx で書くことくらい&コンパイラに怒られたら型を追加する
    • もちろんこれだとすぐにはTSの恩恵は受けられないが、徐々にキャッチアップしていける
  • 開発エディターは VisualStudio Codeがオススメ
    • TypeScript開発のサポート機能がデフォルトでビルトイン
    • Pure JSへのシンタックスサポートもある
  • 型を書くタイミングは「コンパイルが通らなかったら書く」で良い。逆にいうと、「全ての箇所に型を書くのは冗長」だという考え
    • 推論できることは型推論に任せるべき