diff --git a/readme.md b/readme.md index adb9910..03c8a91 100644 --- a/readme.md +++ b/readme.md @@ -428,6 +428,10 @@ Returns `true` if `value` is an even integer. Returns `true` if `value` is an odd integer. +##### .propertyKey(value) + +Returns `true` if `value` can be used as an object property key (either `string`, `number` or `symbol`.) + ##### .any(predicate | predicate[], ...values) Using a single `predicate` argument, returns `true` if **any** of the input `values` returns true in the `predicate`: diff --git a/source/index.ts b/source/index.ts index 8f0700a..82822b0 100644 --- a/source/index.ts +++ b/source/index.ts @@ -359,6 +359,7 @@ is.nonEmptySet = (value: unknown): value is Set => is.set(value) is.emptyMap = (value: unknown): value is Map => is.map(value) && value.size === 0; is.nonEmptyMap = (value: unknown): value is Map => is.map(value) && value.size > 0; +/** Returns `true` if `value` can be used as an object property key (either a `string`, a `number` or a `symbol`.) */ is.propertyKey = (value: unknown): value is PropertyKey => is.any([is.string, is.number, is.symbol], value); export type Predicate = (value: unknown) => boolean;