ガイド: TypeScript / JavaScript
型を「広げずに検査する」「修飾子を操作する」「実行時に安全に判定する」の3観点。
- TypeScript: 型注釈や as の代わりに satisfies を使い、推論を保ったまま型チェックする — 推論を保ったまま型チェック
- TypeScript: マップ型の -readonly / -? で修飾子を外す — 修飾子を外す
- JavaScript: #field in obj でプライベートフィールドの有無(ブランドチェック)を判定する — プライベートフィールドでのブランドチェック
- TypeScript: テストのためだけに export しない → Vitest の In-source testing — 内部関数を同じファイル内でテスト
- npm/pnpm: minimum-release-age でサプライチェーン攻撃を避けつつ、緊急パッチだけ一時的に解除する — 依存の入れ方の安全策
- 開発環境: Portless で npm run dev のポート競合をなくし、名前付き URL でアクセスする — 開発環境の小技
- TypeScript 7(Go 製コンパイラ): tsgo で先に試し、消える tsconfig 設定を今のうちに外す — ネイティブコンパイラへの移行準備
- npm: package.json の files を必ず設定し、npm pack --dry-run で公開内容を確かめる / npm/pnpm/bun/deno: 依存パッケージの install スクリプトを既定で止める — パッケージ管理
- テストは ガイド: テスト を参照
- TypeScript: bun check で tsc 互換の型チェックを高速に回す — Bun 同梱の tsc 互換チェッカー
- TypeScript: 所有者チェック済みをブランド型で表し、IDOR を型で防ぐ — unique symbol で「検査を通った値」だけを受け取る
- Hono × Inertia(@hono/inertia)で API とクライアントルーターなしの React SPA を書く — ページ名と props の型がサーバーからクライアントまで通る(ガイド: フロントエンド(React / Vite / Hono)も参照)
- 識別子の大文字・小文字変換はロケールに依存させない(トルコ語の I 問題) —
toLowerCaseとtoLocaleLowerCaseの違い(トルコ語の I 問題)