unbag
Version:
一个专门用来开发npm工具的包
12 lines (11 loc) • 344 B
TypeScript
export type MaybePromise<T> = T | Promise<T>;
export type DeepPartial<T> = T extends (...args: any) => any ? T : {
[P in keyof T]?: DeepPartial<T[P]>;
};
export type DeepReadonly<T> = T extends (...args: any) => any ? T : T extends {
__TAG__: true;
} ? T : {
readonly [P in keyof T]: DeepReadonly<T[P]>;
} & {
__TAG__: true;
};