TypeScript
TypeScript で配列をコピーするとき、浅いコピー(shallow copy)と深いコピー(deep copy)の違いを理...
TypeScript で型安全性を高めるとき、`as const` は強力な武器になる。しかし、どこにでも付ければよいわけではな...
TypeScript を書いていると、`Object.keys()` の戻り値が `string[]` であることに疑問を持つ人...
TypeScript には `interface` と `type` という、一見似たような機能が 2 つある。どちらもオブジェ...
TypeScript で定数の集合を表現するとき、`enum` を使う方法とユニオン型を使う方法がある。どちらも似たような目的を...
`any` と `unknown` はどちらも「何でも入る型」だが、その後の扱いがまったく異なる。`any` は型チェックを放棄...
`never` は「絶対に起こらない」ことを表す型だ。一見すると使い道がなさそうだが、実際には型の網羅性チェックやエラー処理で重...
型ガードは、実行時の値チェックを型システムに伝える仕組みだ。`unknown` や ユニオン型を安全に扱うために欠かせないが、書...
`Record` はオブジェクトの型を定義するユーティリティ型だ。便利だが、何でもかんでも `Record` で書け...
`Pick`、`Omit`、`Partial` は TypeScript の代表的なユーティリティ型だ。単体で使うことも多いが、...
関数の戻り値や引数の型を取り出したいとき、`ReturnType` と `Parameters` が使える。既存の関数から型を導...
`satisfies` は TypeScript 4.9 で追加された演算子だ。型アノテーションとは異なり、値の型を維持しつつ、...
条件型(Conditional Types)は TypeScript の型システムにおける「if 文」だ。型レベルで分岐処理を書...
`infer` は条件型の中で「型を推論して変数に束縛する」ためのキーワードだ。パターンマッチのように、型の一部を取り出して再利...
TypeScript の型アサーション(as)は、コンパイラに対して「この値はこの型だ」と開発者が宣言する構文です。型推論では解...
document.querySelector や document.getElementById は、戻り値の型が実際の要素より...
document.querySelector はジェネリクス引数を使うと、戻り値に null が残ります。 この null をど...
TypeScript の配列型 string[] は「string の要素がいくつでも入る」という意味で、要素数や各位置の型につ...



