kurosame’s diary

フロントエンド中心です

TypeScript

TypeScript のユニオン型とインターセクション型について

はじめに ユニオン型(|)とインターセクション型(&)の違いを簡単な例でおさらいしておこうと思います 以下の型定義を利用して、実装します type A = { a: string } type B = { b: number } type U = A | B type I = A & B すべてのプロパティを実装する c…

Nuxt.js で Vuex を使わない場合に考えること

Vuex を使うのに慣れすぎて、Vuex を使わないパターンを考えた時に色々考えたのでメモ 方針 比較的規模が小さいシステムでは、Vuex の利用をまずは避けたい Nuxt.js を使用 Composition API を使用 コンポーネント間のデータ受け渡しパターン 親から子 普通…

moxios を廃止して Jest.Mock に移行する

JS/TS のユニットテストで axios をモックするのになんとなくmoxiosを使っていたが、やめようかなという話 理由は moxios が 3 年以上更新されていない Issues の返信や Dependabot のプルリクも放置されているっぽい moxios.stubRequestした axios のリクエ…

Vue3の事前調査まとめ

概要 来月 Vue3 がリリース予定です! 先日ステータスが RC となりました https://github.com/vuejs/rfcs/issues/189 ただし、Vue3 にバージョンアップするのは、Vuex や Vue Router などの主要なエコシステムが Vue3 対応を正式にリリースしてからになると…

@nuxtjs/moment の型定義

Vuex の型定義を拡張して、@nuxtjs/moment の型を追加してあげようっていうだけの記事です まずは前提として、Nuxt.js では store ディレクトリ配下が Vuex になっており、 store 配下にファイルを作成して、そのファイル内で actions オブジェクトを export…

webpack + TypeScript 環境でのバンドル速度改善

会社の webpack が遅くなってきたので、TypeScript 周りでバンドル速度が改善できるか調べてみました そして、以下の記述に見つけて、バンドル速度改善をする上で割と重要なオプションな気がしたので実装してみようと思います GitHub - TypeStrong/ts-loader…