587 BTypeScriptView Raw
1import { ComputeRaw } from '../Any/Compute';
2import { Keys } from '../Any/Keys';
3import { OptionalFlat } from '../Object/Optional';
4import { Record } from '../Object/Record';
5/**
6 * @hidden
7 */
8declare type _Strict<U, _U = U> = U extends unknown ? U & OptionalFlat<Record<Exclude<Keys<_U>, keyof U>, never>> : never;
9/**
10 * Make a [[Union]] not allow excess properties (https://github.com/Microsoft/TypeScript/issues/20863)
11 * @param U to make strict
12 * @returns [[Union]]
13 * @example
14 * ```ts
15 * ```
16 */
17export declare type Strict<U extends object> = ComputeRaw<_Strict<U>>;
18export {};