@shopify/cli-kit
Version:
A set of utilities, interfaces, and models that are common across all the platform features
13 lines (12 loc) • 372 B
TypeScript
/**
* Converts a mapping type to be non-optional.
*
* ```ts
* type T = DeepRequired<{optionalKey?: string, nullableValue: string | null, undefinableValue: string | undefined}>
* T = {optionalKey: string, nullableValue: string, undefinableValue: string}
* ```
*
*/
export type DeepRequired<T> = {
[TKey in keyof Required<T>]: NonNullable<Required<T>[TKey]>;
};