Skip to content

HasProperties

Since v1.3.0

Check if an object type has all specified properties. Returns true only if every property key in the list exists on the object type.

Signature

typescript
export type HasProperties<T, K extends PropertyKey[]> = K extends [infer First, ...infer Rest]
	? First extends keyof T
		? Rest extends PropertyKey[]
			? HasProperties<T, Rest>
			: true
		: false
	: true

Parameters

ParameterDescription
TThe object type to check
KAn array of property keys to look for

Examples

Basic Usage

typescript
import type { HasProperties } from 'uni-types'

type User = { name: string; age: number; email: string }
type HasNameAndAge = HasProperties<User, ['name', 'age']> // true
type HasNameAndPhone = HasProperties<User, ['name', 'phone']> // false

Checking Multiple Properties

typescript
import type { HasProperties } from 'uni-types'

type Config = { host: string; port: number; protocol: string }
type HasRequired = HasProperties<Config, ['host', 'port', 'protocol']> // true
type HasOptional = HasProperties<Config, ['host', 'timeout']> // false

Released under the MIT License.