type-plus
Version:
Provides additional types for TypeScript.
8 lines (5 loc) • 310 B
text/typescript
import type { AnyRecord } from './AnyRecord.js'
export type HasKey<T, K, Then = true, Else = false> = K extends keyof T ? Then : Else
export function hasKey<T extends AnyRecord, K extends string>(subject: T, ...keys: K[]): HasKey<T, K> {
return !keys.some(key => !subject[key]) as unknown as HasKey<T, K>
}