Files
sct-overseerr/src/utils/typeHelpers.ts
renovate[bot] 1a95d423f2 chore(deps): update all non-major dependencies (#2926)
* chore(deps): update all non-major dependencies

* fix: correct breaking changes

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: sct <ryan@sct.dev>
2023-01-03 22:06:07 +09:00

21 lines
656 B
TypeScript

export type Undefinable<T> = T | undefined;
export type Nullable<T> = T | null;
export type Maybe<T> = T | null | undefined;
/**
* Helps type objects with an arbitrary number of properties that are
* usually being defined at export.
*
* @param component Main object you want to apply properties to
* @param properties Object of properties you want to type on the main component
*/
export function withProperties<A extends object, B extends object>(
component: A,
properties: B
): A & B {
(Object.keys(properties) as (keyof B)[]).forEach((key) => {
Object.assign(component, { [key]: properties[key] });
});
return component as A & B;
}