Browse Source

fix: ts 错误: 类型实例化过深,且可能无限

pull/7543/head
moil-xm 1 month ago
committed by GitHub
parent
commit
7fe8d7b4be
No known key found for this signature in database GPG Key ID: B5690EEEBB952194
  1. 28
      packages/@core/base/typings/src/helper.d.ts

28
packages/@core/base/typings/src/helper.d.ts

@ -1,20 +1,38 @@
import type { ComputedRef, MaybeRef } from 'vue';
/**
*
*/
type Increment<A extends unknown[]> = [...A, unknown];
/**
*
*/
type DeepPartial<T> = T extends object
type DeepPartial<
T,
D extends number = 10,
C extends unknown[] = [],
> = C['length'] extends D
? T
: T extends object
? {
[P in keyof T]?: DeepPartial<T[P]>;
[P in keyof T]?: DeepPartial<T[P], D, Increment<C>>;
}
: T;
/**
*
*/
type DeepReadonly<T> = {
readonly [P in keyof T]: T[P] extends object ? DeepReadonly<T[P]> : T[P];
};
type DeepReadonly<
T,
D extends number = 10,
C extends unknown[] = [],
> = C['length'] extends D
? T
: T extends object
? {
readonly [P in keyof T]: DeepReadonly<T[P], D, Increment<C>>;
}
: T;
/**
*

Loading…
Cancel
Save