Skip to content

Commit ce35e8b

Browse files
committed
simplify withrequired type
1 parent a9126d0 commit ce35e8b

File tree

1 file changed

+3
-5
lines changed

1 file changed

+3
-5
lines changed

src/types/utils.ts

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,9 @@ export type StringOr<T extends string> = StringLiteral | T;
88
/** See: https://www.totaltypescript.com/concepts/the-prettify-helper */
99
export type Prettify<T> = { [K in keyof T]: T[K] } & {};
1010

11-
export type WithOptional<T, K extends keyof T> = Omit<T, K> & Partial<Pick<T, K>>;
11+
export type WithOptional<T, K extends keyof T> = Omit<T, K> & { [P in K]?: T[P] };
1212

13-
export type WithRequired<T, K extends keyof T> = Omit<T, K> & Required<Pick<T, K>>;
13+
export type WithRequired<T, K extends keyof T> = Omit<T, K> & { [P in K]-?: T[P] };
1414

1515
export type FunctionType = (...args: any[]) => any;
1616

@@ -31,6 +31,4 @@ type RequiredKeys<T extends Record<string, any>> = {
3131
[K in keyof T]: IsRequired<T[K], never, K>;
3232
}[keyof T];
3333

34-
type MakeRequired<T, K extends keyof T> = T & Required<Pick<T, K>>;
35-
36-
export type MakeRequiredIfNecessary<T extends Record<string, any>> = MakeRequired<T, RequiredKeys<T>>;
34+
export type MakeRequiredIfNecessary<T extends Record<string, any>> = WithRequired<T, RequiredKeys<T>>;

0 commit comments

Comments
 (0)