isMatch() function
object와 source 간의 부분 깊은 비교(partial deep comparison)를 수행하여, object가 source의 모든 속성 값을 포함하는지 확인합니다.
matches 함수의 내부 비교 로직으로 사용됩니다. source는 object 속성의 부분 집합(subset)만 일치하면 됩니다.
지원 타입: 원시 타입, 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
// 배열 매칭
isMatch([1, 2, 3], [1, 2, 3]); // true
isMatch([1, 2, 3], [1, 2]); // true
isMatch([1, 2], [1, 2, 3]); // false
// Map 매칭
const map1 = new Map([
["key1", "value1"],
["key2", "value2"],
]);
const map2 = new Map([["key1", "value1"]]);
isMatch(map1, map2); // true
// Set 매칭
const set1 = new Set([1, 2, 3]);
const set2 = new Set([1, 2]);
isMatch(set1, set2); // true
// Date 매칭
const now = Date.now();
isMatch(new Date(now), new Date(now)); // true
// RegExp 매칭
isMatch(/abc/gi, /abc/gi); // true
// 빈 source는 항상 true
isMatch({ a: 1, b: 2 }, {}); // true