フロントエンドライブラリ共有LT会LT1

TypeScriptとテスト導入を勧めた話

今日話すこと

プロジェクトの問題

コード

  • 2013年からしててテストがない
  • Krmaは導入しているだけ
  • QA部隊がいたからなんとか品質 を担保してくれてる

sub mainのPJでビルド環境が異なる

対応

モダンなアプリケーション開発

  • 新規参画者の負担をへらす

TypeScript導入

  • ビルドの段階で気付ける

    テストちゃんとやる

  • QA部隊のコスト削減

作戦

  • まずはTypeScriptのコンパイルができるように
    • まずは小さいファイルをJSからTSに置き換えた
  • tsconfigをECMA2019にした
  • VUEのSFCファイルをTS対応する
    • VUEの型定義を追加
    • クラスコンパレータからデコレータは書き換えリストを考えてヤメた
  • ビルド時間の短縮
  • ビルド環境のシンプル化
  • テストを導入
    • KrmaからJestへ

      ポイント

  • リファクタとコード修正はぐっとこらえた
  • TODO:anyでガード
  • Vueの型解決には戻り値の型定義をしっかりと

まとめ

  • TS導入は段階的にやる

質問

  • TypeScript の設定について、 target以外にtranspileOnlyはtrueにする