TypeScript

フロントエンドをユニットテストでリファクタリングする例

概要 自分が業務でよく使う、テストのない.tsxファイルなどを処理を関数で切り出し、jestでリファクタリングする手順をメモします。 リファクタ前のコード 以下は日付のフォームとバリデーション処理です。 処理はtsxに書かれていてテストはありません。 日…

TypeScriptのconstやas constの挙動について

概要 TypeScriptには定数を宣言する仕組みとして、constやas constが存在します。 ただ、オブジェクトや配列をconstで定義したとしても、中の値は自由に書き換えれるなどの注意点があります。 これを例とともに見ていきたいと思います。 動作環境: TS5.4.3 c…

anyとunknownの違いとどちらを使うべきかについて

概要 TypeScriptにはanyとunknownという型があります。 これらは型チェックを無効にするものですが、動作には大きく違いがあります。 anyとunknownの動作の違い 例えば以下の実装があったとします。 ( v5.3.3の環境で実行しています) const un: unknown = …

tsconfig.json/compilerOptionsのtypes指定についてメモ

概要 デフォルトでは@typesパッケージのすべて(node_modules/@types)がコンパイル時にincludeされる。 typesを利用すると、指定したパッケージのみincludeされる。 { "compilerOptions": { "types": ["node", "lodash", "express"] } } ↑三つの指定したパ…