export type RequiredPick<T, key extends keyof T> = Required<Pick<T, key>> & T;
export type PartialPick<T, key extends keyof T> = Partial<Pick<T, key>> &
Omit<T, key>;
exhaustive check, does react reducer need this? need to check!
type Union = "1" | "2" | 3;
export function exhaustiveCheck(p: Union) {
switch (p) {
case "1":
return "ok";
case "2":
return "ok";
default:
// this would error out if we miss a case
// Type '3' is not assignable to type 'never'
const exhaustiveChecker: never = p;
return exhaustiveChecker;
}
}