isMatch() function
object と source の間で部分的な深い比較(partial deep comparison)を行い、object が source のすべてのプロパティ値を含んでいるかどうかを確認します。
matches 関数の内部比較ロジックとして使用されます。 source は object のプロパティのサブセットのみ一致すれば十分です。
対応型: プリミティブ型、Object(ネストを含む)、Array、Date、RegExp、Map、Set。
Signature:
typescript
function isMatch(object: unknown, source: unknown): boolean;Example
ts
// 部分オブジェクトマッチング
isMatch({ a: 1, b: 2 }, { a: 1 }); // true
isMatch({ a: 1 }, { a: 1, b: 2 }); // false - objectに'b'がない
// ネストされたオブジェクトのマッチング
isMatch({ user: { name: "John", age: 30 } }, { user: { name: "John" } }); // true
isMatch({ user: { name: "John" } }, { user: { name: "Jane" } }); // false
// 配列マッチング(部分一致, prefixベース)
isMatch([1, 2, 3], [1, 2, 3]); // true
isMatch([1, 2, 3], [1, 2]); // true
isMatch([1, 2], [1, 2, 3]); // false
// 特殊型のマッチング
const now = Date.now();
isMatch(new Date(now), new Date(now)); // true
isMatch(/abc/gi, /abc/gi); // true
// 空のsourceは常にtrue
isMatch({ a: 1, b: 2 }, {}); // true