2023-01-01から1年間の記事一覧

isによる型ガード

import { FastifyRequest } from 'fastify'; // 'value'が'string'型かどうかをチェックする型ガード関数を定義する function isUserIdString(value: unknown): value is string { return typeof value === 'string'; } // FastifyRequest型の引数を受け取り…

SQLでJOINしたテーブルのNULLが多いなら、逆からJOINする

tsで型が気になる時など。

VSCodeのterminalに残る行数を多くする方法

簡単に設定可能です。以下の手順に従ってください。 VSCodeを開き、左下の「歯車」アイコンをクリックします。 メニューから「ユーザー設定」をクリックします。 検索バーに「scroll buffer」と入力します。 「Terminal > Integrated: Scrollback」という項…

react-d3-treeはd3.jsのバージョン4に依存している

前提 Reactでツリー型のデータを可視化するには、react-d3-treeというライブラリを使用することができます。ただし、このライブラリはd3.jsのバージョン4に依存しているため、最新のd3.jsバージョンをインストールしている場合は、エラーが発生することがあ…

スマホでform入力時にズームさせない方法

説明 入力時のフォームズームを無効にするには、フォントサイズを16px以上に設定するか、タグのviewport属性にuser-scalable=noとmaximum-scale=1.0を設定します。ただし、ユーザビリティを考慮すると、フォントサイズを大きくする方が推奨されます。 metaタ…

スマホでだけレスポンシブが効かない場合の原因と対処法

原因 metaタグが設定されていない場合、スマートフォンでの表示が正常に行われないことがあります。metaタグは、ブラウザにページの表示方法を指示するためのものであり、以下のように設定する必要があります。 対処法 <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0"> 説明 このmetaタグは、画面の幅をデバ</meta>…

router.queryでパスパラメータが複数あっても最初のものだけとる

[hogeId].tsx const router = useRouter() const { hogeId } = router.query const expectValue = Array.isArray(hogeId) ? hogeId[0] : hogeId note.com qiita.com

dayjsで現在時刻をJSTで取得する

import dayjs from "dayjs"; import utc from "dayjs/plugin/utc"; import timezone from "dayjs/plugin/timezone"; dayjs.extend(utc); dayjs.extend(timezone); const now = dayjs().tz("Asia/Tokyo").format(); const timestamp = dayjs(now).tz("Asia/To…

Error: Cannot find module 'autoprefixer'

解決法 普通に autoprefixer がなかったので、 yarn add autoprefixer で解決。 同じメッセージのエラー autoprefixer が入っているのにこのエラーが出る〜 という場合はtailwindCSSを最新にしたりすると良いらしい。 stackoverflow.com

dayjsの使い方参考記事

qiita.com

JavaScriptのobjectで各プロパティの値を取る

const sampleObj1 = { id: 1, firstName: 'taro' } const sampleObj2 = { id: 1, lastName: 'yamada' } Object.values(sampleObj1) // => [1, 'taro'] Object.values(sampleObj2) // => [2, 'yamada'] 上記のような似ているが、部分的にプロパティ名が違う、…

ローカル環境のaxiosでconnect ECONNREFUSEDになる

NG http://localhost:8080 OK http://127.0.0.1:8080

Error: P1010: User `postgres` was denied access on the database `db.public`

解決した方法 今までは問題なかったが、dockerからpostgresに接続できなくなった。 最近ホストマシン側にpostgresを入れたという心当たりがあったので、 lsof -i :5432 したらいらないプロセス(dockerじゃない)があった。 試行錯誤の末、正直ホストマシン…

ContextAPIの<TodoContext.Provider value= の指定で型エラー

エラー内容 次のプロパティがありません: length, pop, push, concat、29 ts(2740) とか、 型 '{ hoges: HogeContextType[]; setHoges: Dispatch<SetStateAction<HogeContextType[]>>; }' を型 'HogeContextType[]' に割り当てることはできません。 とかがでた。 改善方法 export const HogeCon</setstateaction<hogecontexttype[]>…

error Command "webpack" not found.

qiita.com

Webpacker::Manifest::MissingEntryError in ControllerName#action_name

bin/rails webpacker:install bin/rails webpacker:compile qiita.com

PG環境でRailsのDBをcreateできない。 PG::ConnectionBad: connection to server on socket "/tmp/.s.PGSQL.5432" failed: No such file or directory

一つ目の記事でpath通したりした後、 二つ目の記事でpostgresを止めてupdateしたら成功した。 多分勝手にpath解決してくれていたみたいなので後者のみで良さそう。 qiita.com qiita.com

bundle installできない。Retrying fetcher due to error (2/4): Bundler::HTTPError Could not fetch specs from http://rubygems.org/

# 接続確認用にwgetをインストール brew install wget # IPv4のアドレスで接続できている、IPv6では失敗していると確認 wget https://api.rubygems.org/specs.4.8.gz # rubygems.orgのIPアドレス確認 host rubygems.org ## 確認したIPv4アドレスをhostsに記…

libv8のエラー。libv8, therubyracerの組み合わせでbundle installを通す

bundle config --local build.libv8 --with-system-v8 You are replacing the current bundle config --local build.therubyracer --with-v8-dir=$(brew --prefix v8-315) でとりあえずは通った。 本当は mini_racer を使うべきらしい。 web-begginer-log.com

xcodebuildでエラーになりxcode switchできない

以下の操作ができなかった。 cliからxcode-selectしかinstallしていなかったのが原因。 app storeよりxcodeをinstallしてOK。 qiita.com techracho.bpsinc.jp

ffiがinstallできない

brew install libffi ln -s $(brew --cellar libffi)/*/include/ffi.h /usr/local/include/ffi.h ln -s $(brew --cellar libffi)/*/include/ffitarget.h /usr/local/include/ffitarget.h ↑で実行したかった gem install ffi -v '1.15.5' が成功して、 bundle…

xcodeインストールの進捗状況確認

左下のアカウント名が表示されているところをクリックする 進捗中の表示をホバーする

rbenvで欲しいverのインストールができない

brew upgrade rbenv ruby-build xcode-select --install rbenv install 2.7.6 rbenv local 2.7.6 という感じでOK。bundle install が実行できた。 qiita.com qiita.com

prismaでincludeのようにselectを使える

wp-kyoto.net

SQLのGROUP BY

qiita.com

mermaid-jsのバグ

型定義ファイルにoptionalな引数を先に書いてしまっている。 最近OSSのバグ踏むこと割とある(ransack, chakra-ui, mermaid-jsなど) github.com github.com github.com

【React】必要もないflagmentをつけるとWarning: Each child in a list should have a unique "key" prop. Check the render method of `ComponentName`になる

必要ない<>は外そう。 reactjs.org

Next.jsでの共通レイアウトちらつきをgetLayoutで直す。Recoilとの兼ね合い。

説明 ↓Appにないものはpagesが変わるとunmountされる。 zenn.dev ↓RecoilとgetLayoutでのパフォーマンスの話 zenn.dev コードの書き方 ↓getLayoutの使い方 nextjs.org ↓ <RecoilRoot /> の場所。getLayout は <RecoilRoot /> より内側に書こう。 kumano-te.com</recoilroot></recoilroot>

Node.js verUP

zakkuri.life

VSCodeのterminalでwslをデフォルトにする

手順 コマンドパレットからSelect Default Profileを選択 wslを選んでエンターキーで完了 参考記事 teratail.com