{{#template name="apiCheck"}}
Match.Any"}}
Matches any value.
{{/dtdd}}
{{#dtdd "String, Number, Boolean, undefined, null"}}
Matches a primitive of the given type.
{{/dtdd}}
{{#dtdd "Match.Integer"}}
Matches a signed 32-bit integer. Doesn't match `Infinity`, `-Infinity`, or `NaN`.
{{/dtdd}}
{{#dtdd "[pattern]"}}
A one-element array matches an array of elements, each of which match
*pattern*. For example, `[Number]` matches a (possibly empty) array of numbers;
`[Match.Any]` matches any array.
{{/dtdd}}
{{#dtdd "{key1: pattern1, key2: pattern2, ...}"}}
Matches an Object with the given keys, with values matching the given patterns.
If any *pattern* is a `Match.Maybe` or `Match.Optional`, that key does not need to exist
in the object. The value may not contain any keys not listed in the pattern.
The value must be a plain Object with no special prototype.
{{/dtdd}}
{{#dtdd "Match.ObjectIncluding({key1: pattern1, key2: pattern2, ...})"}}
Matches an Object with the given keys; the value may also have other keys
with arbitrary values.
{{/dtdd}}
{{#dtdd "Object"}}
Matches any plain Object with any keys; equivalent to
`Match.ObjectIncluding({})`.
{{/dtdd}}
{{#dtdd "Match.Maybe(pattern)"}}
Matches either `undefined`, `null`, or _pattern_. If used in an object, matches only if the key is
not set as opposed to the value being set to `undefined` or `null`. This set of conditions was
chosen because `undefined` arguments to Meteor Methods are converted to `null` when sent over the
wire.
```js
// In an object
var pattern = { name: Match.Maybe(String) };
check({ name: "something" }, pattern) // OK
check({}, pattern) // OK
check({ name: undefined }, pattern) // Throws an exception
check({ name: null }, pattern) // Throws an exception
// Outside an object
check(null, Match.Maybe(String)); // OK
check(undefined, Match.Maybe(String)); // OK
```
{{/dtdd}}
{{#dtdd "Match.Optional(pattern)"}}
Behaves like `Match.Maybe` except it doesn't accept `null`. If used in an object, the behavior is
identical to `Match.Maybe`.
{{/dtdd}}
{{#dtdd "Match.OneOf(pattern1, pattern2, ...)"}}
Matches any value that matches at least one of the provided patterns.
{{/dtdd}}
{{#dtdd "Any constructor function (eg, Date)"}}
Matches any element that is an instance of that type.
{{/dtdd}}
{{#dtdd "Match.Where(condition)"}}
Calls the function *condition* with the value as the argument. If *condition*
returns true, this matches. If *condition* throws a `Match.Error` or returns
false, this fails. If *condition* throws any other error, that error is thrown
from the call to `check` or `Match.test`. Examples:
check(buffer, Match.Where(EJSON.isBinary));
NonEmptyString = Match.Where(function (x) {
check(x, String);
return x.length > 0;
});
check(arg, NonEmptyString);
{{/dtdd}}