Motomichi Works Blog

モトミチワークスブログです。その日学習したことについて書いている日記みたいなものです。

TypeScript学習日記 その0012 とてもやさしいMapped Types入門

参考にさせていただいたページ とても参考になる入門と初級の記事です。 TypeScriptの型入門 - Qiita TypeScriptの型初級 - Qiita はじめに 以下のページを読んで、Mapped Typesが理解できる人はこの記事を読む必要は全くありません。 TypeScriptの型入門 - …

TypeScript学習日記 その0011 とてもやさしいinfer入門

参考にさせていただいたページ TypeScript 2.8 の Conditional Types について - Qiita TypeScriptの型入門 - Qiita TypeScriptの型初級 - Qiita この記事について inferまじで何もわからない。という私のような人が少しとっかかりをつかむ超入門記事です。 …

TypeScript学習日記 その0010 便利な型Tipsメモ

はじめに ほんとに便利な型Tipsを公開してくださっている記事がいくつかあり、あとで見つからなくなったらつらいのでメモしておきます。 リンク TypeScriptで自作している便利型Tips 辞書を作る関数に TypeScript で執拗に型をつける - Object.create(null) …

TypeScript学習日記 その0009 readonlyな文字列の配列をキーとしてオブジェクトを作成する関数

参考にさせていただいたページ TypeScriptの型入門 - Qiita 辞書を作る関数に TypeScript で執拗に型をつける - Object.create(null) makeObj.tsに関数を定義する 以下のような関数を定義します。 type MyObj<K extends string, T> = { [K0 in K]: T } type MyKeys<T extends string> = readonly T[]</t></k>…

TypeScript学習日記 その0008 引数の型が決まっていない関数を定義する(関数実行時に引数の型が決まる関数を定義する)

参考にさせていただいたページ TypeScriptの型入門 - Qiita はじめに 関数を定義する段階では引数の型は決めずに、実行時に渡す引数の型によって決まってほしいときがあると思います。 そのようなときに便利な方法です。 関数の定義の仕方 ジェネリクスを使…

TypeScript学習日記 その0007 構造的部分型について学習する

参考にさせていただいたページ TypeScriptの型入門 - Qiita TypeScript の構造的部分型とプリミティブ型について - 30歳からのプログラミング はじめに きっかけとなったのはこちら「TypeScriptの型入門 - Qiita」の入門記事であり、キーが多い方が少ない方…

TypeScript学習日記 その0006 オブジェクトの型を複数定義して|で合わせたり&で合わせたりしてみる(union型とintersection型)

オブジェクトの型を定義する 以下のように定義しました。 type MyObjA = { a1: string; a2: string } type MyObjB = { b1: string; b2: string } type MyObjC = { c1: string; c2: string } type MyObjUnion = MyObjA | MyObjB | MyObjC type MyObjAnd = MyO…

rails5 + webpacker4 + vue-loader15.7.0 で単一VueコンポーネントにSCSSを書く

参考にさせていただいたページ GitHub - rails/webpacker: Use Webpack to manage app-like JavaScript modules in Rails はじめに webpackerよくわからなくてハマったときのメモです。 config/webpack/loaders/vue.js webpackであれば、webpack.config.jsの…

Nuxt.js 2.x + TypeScript 4.x その0010 FontAwesome5のアイコンをpropsから渡すときの型を設定する

はじめに 以前書いた「Nuxt.js 2.x + TypeScript 4.x その0004 FontAwesomeの必要なアイコンだけ読み込んで使う - Motomichi Works Blog」みたいな感じでimportしたアイコンを、例えば自分で作ったMyComponentに渡すときにMyComponentのpropsの型はどのよう…

Nuxt.js 2.x + TypeScript 4.x その0009 Sassの変数やmixinを全てのコンポーネントで使えるようにする

参考にさせていただいたページ 《Nuxt.js》Sassの共通の変数やmixinを一括で各コンポーネントに読み込む方法。 - Qiita GitHub - nuxt-community/style-resources-module: Nobody likes extra @import statements! style-resources-module のインストール 「…

TypeScript学習日記 その0005 TypeScriptのバージョンを確認する(tscのバージョンを確認する)

参考にさせていただいたページ typescriptのバージョンを確認する | mebee 確認方法 以下のコマンドで確認できると思います。 npx tsc -v

Nuxt.js 2.x + TypeScript 4.x その0008 Vue.extend()でやっている場合のmixin

はじめに 検索すると、クラスベースで書いてデコレータを使う方法については多くヒットしますが、Vue.extend()で書いている場合の方法についてはあまりヒットしなかったのでこの記事を書いています。 特に変わったことは書いていませんが。 今日の開発環境 N…

TypeScript 学習日記 その0004 関数の型を定義する

参考にさせていただいたページ 関数の型 - TypeScript Deep Dive 日本語版 はじめに いくつか方法がありますが、少し書いてみます。 後日もう少し充実させていこうと思います。 例として、以下のような「引数が2つあってオブジェクトを返す関数」の型を定義…

TypeScript 学習日記 その0003 文字列が入っている配列を元にStringLiteralTypesの型を定義する

参考にさせていただいたページ Template Literal Typesについて TypeScript: Documentation - Template Literal Types 配列を元にStringLiteralTypesの型を定義する方法について TypeScript array to string literal type - Stack Overflow はじめに 以下の…

TypeScript 学習日記 その0002 キーが未確定なobjectにデータを追加する方法について考える

参考にさせていただいたページ keyof typeofの使い方 [TypeScript] - Qiita TypeScriptの型入門 - Qiita Index signature(インデックス型) - TypeScript Deep Dive 日本語版 はじめに 注意して使用しましょう。 「キーが未確定なobjectを先に作って後から…

TypeScript 学習日記 その0001 objectのキーを元にStringLiteralTypesの型を定義する

参考にさせていただいたページ TypeScript 2.1のkeyofとかMapped typesがアツい - Qiita 今日のバージョン TypeScript 4.2.3 文字列の型について 以下のようにすると、変数keyの型はstringになります。 const key: string = 'keyNameA' 以下のようにすると、…

Nuxt.js 2.x + TypeScript 4.x その0007 storeの型を設定する

参考にさせていただいたページ 基本的なタイピング 今日の開発環境 Nuxt 2.14.12 TypeScript 4.2.3 定義する 「基本的なタイピング」をよく読むとよい。 ReturnType<typeof state> を使って、stateの型を定義する GetterTree, ActionTree, MutationTree を使う GetterTree</typeof>…

RSpec+Capybaraその0005 aタグやbuttonタグのkeydownイベントを発火させる

参考にさせていただいたページ ruby on rails - Is there a way to send key presses to Webkit using Capybara? - Stack Overflow keydownイベントを発火させる方法 もっと良い方法があるかもしれないけど、たぶんこんな感じ button = find('[data-test-id=…

RSpec+Capybaraその0004 要素にfocusする

参考にさせていただいたページ Capybara/Selenium: evaluate_script might freeze your browser, use execute_script - makandra dev 要素にfocusする方法 もっと良い方法があるかもしれないけど、たぶんこんな感じ。 page.execute_script("document.querySe…

Vue.jsのエラーを解決する [Vue warn]: You are using the runtime-only build of Vue where the template compiler is not available.

はじめに 特にwebpackなどを使用して、Vue.jsをこれからはじめようという方に多いとは思いますが、以下のようなエラーがコンソールに出力されることがあります。 [Vue warn]: You are using the runtime-only build of Vue where the template compiler is n…

Nuxt.js 2.x + TypeScript 4.x その0005 ビルド時にJavaScript heap out of memoryなってしまう問題の解決

参考にさせていただいたページ Vue.extendとnameオプションについて API — Vue.js | Vue.extendについて API — Vue.js | nameオプションについて メモリの割り当てを増やす Nuxt (+TS) の開発サーバーがメモリ不足でクラッシュする事象を暫定的に回避する Ja…

Nuxt.js 2.x + TypeScript 4.x その0006 アプリケーションのsrcを一階層深いところに格納する(srcDirの設定を変更する)

参考にさせていただいたページ Nuxtのaliasプロパティについて The alias Property - NuxtJS NuxtのrootDirについて rootDir プロパティ - NuxtJS NuxtのsrcDirについて The srcDir Property - NuxtJS TypeScriptのimportパスの解決について TypeScript: Doc…

Nuxt.js 2.x + TypeScript 4.x その0004 FontAwesomeの必要なアイコンだけ読み込んで使う

参考にさせていただいたページ nuxt-fontawesome - npm Nuxt.jsでFontAwesomeを使う方法。必要なアイコンだけインポートする! - Qiita 今日の開発環境 Nuxt 2.14.12 TypeScript 4.2.3 パッケージをインストールする パッケージを4つインストールします。 ya…

Gitのglobal設定で.DS_Storeを無視する

参考にさせていただいたページ Ignoring files - GitHub Docs 目的 リポジトリ毎に.DS_Storeを.gitignoreに書かなくても良いようにglobalに設定します。 手順 .gitignore_globalを作成して、.DS_Storeと記述します。 echo .DS_Store > ~/.gitignore_global …

Nuxt.js 2.x + TypeScript 4.x その0003 Sassを使えるようにする

参考にさせていただいたページ 公式ページ css プロパティ - NuxtJS その他のページ Nuxt.jsプロジェクトでDart Sassを使う | kimulaco blog 今日の開発環境 Nuxt 2.14.12 TypeScript 4.2.3 パッケージのインストール 公式ページに倣って以下の通りインスト…

VeeValidateでcheckboxのfalseを許容しない場合のrules

checkboxでfalseを許容しない場合のrules falseでも値があればバリデーションが通ってしまうっぽいので、ValidationProviderに以下のような感じでオブジェクトを渡すと良いかも。 rules="{ required: { allowFalse: false } }" 例えば以下のようになる。 <ValidationProvider v-slot="{ errors }" rules="{ required: { allowFalse: false } }"> 〜</validationprovider>…

GoogleTagManager(GTM) その0002 dataLayer.push()を使用して計測をする

参考にさせていただいたページ dataLayer.push()を使用して計測をする Google Tag Manger から Google Analytics にカスタムイベントを送る方法 - Qiita プレビューモードの使い方 新しいGTMプレビューモードの使い方 前の記事 GoogleTagManager(GTM) その00…

GoogleTagManager(GTM) その0001 導入とクリックイベントの計測

参考にさせていただいたページ 公式ページ タグ マネージャーの設定とインストール - タグ マネージャー ヘルプ クリックイベントの計測を始めるための設定 Googleタグマネージャーでクリックイベントを計測する方法 - ランディングページ制作、デジタルマー…

Nuxt.js 2.x + TypeScript 4.x その0002 ファイルを保存したときに自動整形する

参考にさせていただいたページ Nuxtのeslintについて GitHub - nuxt-community/eslint-module: ESLint module for Nuxt.js TSのランタイムlintについて Lint - Nuxt TypeScript 今日の開発環境 Nuxt 2.14.12 TypeScript 4.2.3 前提 npx create-nuxt-appした…

Nuxt.js 2.x + TypeScript 4.x その0001 公式の GET STARTED をやってみる

参考にさせていただいたページ GitHub nuxt/create-nuxt-app create-nuxt-app/README.md at master · nuxt/create-nuxt-app · GitHub 公式ドキュメント 日本語: インストール - NuxtJS 英語: Installation - NuxtJS 今日の開発環境 Nuxt 2.14.12 TypeScript …