TypeAsserter<Type>
A helper that captures a type parameter and provides methods for compile-time exhaustiveness checks.
assertAllKeysis available whenTypeis an object type. -assertAllMembersis available whenTypeis a literal key union (string | number).
Import:
import { TypeAsserter } from 'obsidian-dev-utils/type';Example:
type A = { a: 1, b: 2, c: 3 };new TypeAsserter<A>().assertAllKeys(['a', 'b', 'c']); // OKnew TypeAsserter<A>().assertAllKeys(['c', 'a', 'b']); // OK, order is ignorednew TypeAsserter<A>().assertAllKeys(['a', 'b', 'c', 'd']); // Error: Invalid members: dnew TypeAsserter<A>().assertAllKeys(['a', 'b']); // Error: Missing members: c
type B = 1 | 2 | 3 | 'a';new TypeAsserter<B>().assertAllMembers([1, 2, 3, 'a']); // OKnew TypeAsserter<B>().assertAllMembers([1, 2, 3, 'a', 4]); // Error: Invalid members: 4new TypeAsserter<B>().assertAllMembers([1, 2, 3]); // Error: Missing members: aSignature:
export class TypeAsserter<Type>Constructor
new TypeAsserter()Creates a type asserter that captures Type for compile-time exhaustiveness checks.
Properties
| Property | Type | Description |
|---|---|---|
| assertAllKeys | TypeAssertions<Type>['assertAllKeys'] | Asserts that all keys of an object type are present in a list of keys. |
| assertAllMembers | TypeAssertions<Type>['assertAllMembers'] | Asserts that all members of a union type are present in a list of members. |