Knowledge

TILから一般化した再利用できる知識文書です。カテゴリー別に整理されています。

入力を止めてから350ms後に自動で検索します。

91件の文書

Updated 2026-08-24testingInferred

型の境界値分析 — BVA で型テストのケースを選ぶ

ランタイムテストの境界値分析を型レベルに移して、型の束(lattice)の極端 7 軸ごとに通過・拒否の witness ペアを組む方法と、時間軸・副作用の回数のように型では最後まで覆えない軸

Updated 2026-08-23frontendInferred

TypeScript の変性 — 共変性と反変性

Dog が Animal の部分型のとき、Dog[] や (x: Dog) => void もその関係を受け継ぐのか、どちらの向きに受け継ぐのかを決めるルールと、strictFunctionTypes を有効にしてもメソッド短縮記法に穴が残る理由

Updated 2026-08-23testingInferred

型レベルテスト — コンパイラが残す証拠

実行結果ではなくコンパイル結果を検証して「この型が実際にどんな誤ったコードを防ぐのか」をコードとして固定する方法と、@ts-expect-error・mutation 検証でテストが生きているかを確認する手順

Updated 2026-08-23frontendInferred

ジェネリックコンテキストファクトリ

const 宣言に型パラメータを付けられないという制約を回避し、ジェネリック関数の中で context を作ってコンポーネントたちにクロージャで掴ませるパターンと、レンダー中に呼ぶと静かに再マウントされる落とし穴

Updated 2026-08-14testingInferred

テストオラクルと正解の出どころ

実行結果が正しいかどうかを判定する基準をどこから得るかという問題と、実装から期待値を逆算したテストが何も検証できない理由

Updated 2026-08-09browserInferred

ブラウザ拡張機能のメッセージベース RPC

メモリを共有できない拡張機能の実行空間を、メッセージ API、runtime 検証、handler ルーティング、応答エンベロープ、変更通知で安全につなぐ方法

Updated 2026-08-07operating-systemInferred

シンボリックリンクと直接実行ガード

npm のグローバル bin のようなシンボリックリンク経路でパス比較型の main ガードが静かに false になり、CLI が出力なしで exit 0 する仕組みと診断・処方

Updated 2026-08-07browserInferred

IME の変換とコミット境界

blur や Enter が変換途中の文字を確定保存してしまう理由と、イベント順序の仮定ではなく変換状態で直す方法

Updated 2026-07-31frontendVerified

構文トランスパイル vs ランタイムポリフィル

旧ブラウザ対応は別々の二つの作業である — 新しい構文を古い構文に変えるトランスパイルと、存在しない API をコードで補うポリフィル。トランスパイラは構文だけを変え、ランタイム関数は作らない

Updated 2026-07-31frontendVerified

ハイドレーション不発と死んだイベントハンドラ

一画面のインタラクションが複数同時に効かなくなったら、たいていは個別のバグではなく、クライアント JS が実行できずハイドレーションが丸ごと不発になった単一の根本原因である

Updated 2026-07-31frontendVerified

feature-detect による差分ポリフィルロード

ポリフィルを全ブラウザに入れず、機能が無いかを実際に検知して不足したブラウザにだけロードする手法 — 最新ブラウザのコストがほぼ 0 になる