satisfies 演算子
別名: satisfies / satisfies operator / satisfies演算子
TypeScript 4.9 で追加された演算子。`式 satisfies 型` で型適合を検査しつつ、式自身の推論結果は上書きせずそのまま残す。型注釈との違いがここにある。
#typescript#satisfies#type-check#type-inference#operator
公開:
定義
satisfies 演算子は TypeScript 4.9 で追加された演算子で、式 satisfies 型 と書くと「式がその型に適合するかを検査しつつ、式自身の推論結果はそのまま残す」。
型注釈 : 型 のように推論を型側へ丸めてしまわないのが最大の特徴。
詳細
const palette = { red: [255, 0, 0] } satisfies Record<string, [number, number, number]> のように書くと、キーの過不足や値の型の誤りはエラーになる一方、palette.red は number[] ではなく [number, number, number] のまま使える。
型注釈だと推論が注釈側に丸められて具体性を失うが、satisfies は検査と具体的推論の両立を狙う。
よくある誤解
- 型注釈(
: 型)の別名: 違う。
注釈は変数の型を固定するが、satisfies は検査だけ行い推論を保つ。 as constの代用: 役割が別。
リテラル固定はas const、適合検査は satisfies で、併用される場面も多い。
関連
絞り込みが効かない事例は satisfies を使っても型が絞り込まれない、リテラル固定は const assertion を参照。