type-fest/source/unwrap-partial.d.ts
Sindre Sorhus 3f821921be Tweaks
2026-01-12 16:58:49 +01:00

34 lines
787 B
TypeScript
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/**
Revert the `Partial` modifier on an object type.
Use-case: Infer the underlying type `T` when only `Partial<T>` is available or the original type may not be directly accessible.
@example
```
import type {UnwrapPartial} from 'type-fest';
type Config = Partial<{
port: number;
host: string;
secure?: boolean;
}>;
type InitializedConfig = UnwrapPartial<Config>;
//=> {port: number; host: string; secure?: boolean}
```
Note: If the provided type isnt of `Partial<T>`, `UnwrapPartial` has no effect on the original type.
@category Object
*/
export type UnwrapPartial<PartialObjectType> =
PartialObjectType extends Partial<infer ObjectType>
? (
Partial<ObjectType> extends PartialObjectType
? ObjectType
: PartialObjectType
)
: PartialObjectType;
export {};