- 依存を更新する(まずこれをしないと変なところでハマる可能性があるので1番最初に必ず行う)
- flow-typedを削除
- yarn remove flow-bin
- package.jsonのscriptフィールドを修正しflow関連を削除
-
yarn add --dev typescript ts-jest @types/jest @akameco/tsconfig
(tsconfigは任意) - tsconfigの編集: extendsにakameco/tsconfigを指定しoutDirとtargetとlibの指定
- jest.config.jsにpreset ts-jestを追加
- eslintの設定(eslint-config-precureを使っていればflowならflow,tsならtsで自動設定されるので変更する必要はないが一応確認)
- 拡張子をjs→tsに変更
- 必要な@typesのインストール
- testを通す
- buildを通す
- flowをDropするのでリリースする際はメジャーバージョンを上げること
flowからTypeScriptにする構成は2通り考えれるが、
- typescript, jest, ts-jest, prettier, eslint
- typescript, babel, @babel/preset-typescript, jest, prettier, eslint
ライブラリにおいては、babelと型定義の生成等手間がかかるので基本的にtypescriptオンリーの方がよい。