api / type
RecordSignalTrap
Record trap for plain objects with property access methods.
Record trap for plain objects with property access methods.
Signature
export type RecordSignalTrap<T extends Record<string, unknown>> =
GenericTrap<T> & {
/** Returns a derived signal for a specific property. */
prop: <K extends keyof T>(key: K) => DerivedSignal<T[K]>;
/** Returns an object with all properties as derived signals. */
get props(): { [key in keyof T]: DerivedSignal<T[key]> };
/** Returns the object's keys as a derived signal. */
get keys(): DerivedSignal<string[]>;
};
/**
* Union type for all trap types, determined by the value type.
*
* @template T - The type of value to trap
*
* @remarks
* - Number values → NumberSignalTrap
* - String values → StringSignalTrap
* - Array values → ArraySignalTrap
* - Plain objects → RecordSignalTrap
* - Other types → GenericTrap
*/
export type SignalTrap<T> = T extends number
? NumberSignalTrap
: T extends string
? StringSignalTrap
: T extends (infer I)[]
? ArraySignalTrap<I>
: T extends Record<string, unknown>
? RecordSignalTrap<T>
: GenericTrap<T>;
Type Parameters
- The object type
Remarks
- Throws if the value is not a plain object