Skip to content

isMatch() function

objectsource の間で部分的な深い比較(partial deep comparison)を行い、objectsource のすべてのプロパティ値を含んでいるかどうかを確認します。

matches 関数の内部比較ロジックとして使用されます。 sourceobject のプロパティのサブセットのみ一致すれば十分です。

対応型: プリミティブ型、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

Open Source Code

Released under the Apache-2.0 License.