Dev Study
TypeScript コース

38. satisfies — 型に適合させつつ推論を保つ

satisfies 演算子は、値が「ある型を満たしているか」を検査しつつ、変数の型は元の具体的な推論結果のまま残す、という両取りを実現します。const config = { ... } satisfies Config と書くと、Config に合っているかはチェックされますが、各プロパティは Config で広げられず、書いた値の具体的な型として使えます。

型注釈(: Config)との違いがポイントです。: Config を付けると変数の型が Config そのものになり、各プロパティの具体的な情報(リテラル型など)が失われがちです。satisfies なら「Config の制約は守らせたいが、個々の値の細かい型情報も活かしたい」を同時に満たせます。

実務では、設定オブジェクトや定数マップで「キーや形は決まった型に従わせつつ、値ごとの正確な型は保ちたい」ときに重宝します。下のコードは、型注釈だと失われる情報が satisfies だと保たれる様子を比べたものです。

▶ サンプルコードを実行してみよう(自由に書き換えてOK)

TypeScript
公式ドキュメントで詳しく ↗