@opra/common
Version:
Opra common package
29 lines (28 loc) • 1.34 kB
TypeScript
import type { Class, PartialSome, Type } from 'ts-gems';
import type { DataType } from './data-type.js';
/**
* Create a new MappedType that marks given or all fields as optional
* @param baseType
* @param options
*/
export declare function PartialType(baseType: string | Type, options?: DataType.Options): Type;
/**
* Create a new MappedType that marks given fields as optional
* @param baseType
* @param keys
* @param options
*/
export declare function PartialType<Args extends any[], Instance, Static, K extends keyof Instance>(baseType: Class<Args, Instance, Static>, keys: readonly K[], options?: DataType.Options): Class<Args, PartialSome<Instance, K>> & Omit<Pick<Static, keyof typeof baseType>, 'prototype' | 'constructor'>;
/**
* Create a new MappedType that marks all fields as optional
* @param baseType
* @param options
*/
export declare function PartialType<Args extends any[], Instance, Static>(baseType: Class<Args, Instance, Static>, options?: DataType.Options): Class<Args, Partial<Instance>> & Omit<Pick<Static, keyof typeof baseType>, 'prototype' | 'constructor'>;
/**
* Create a new MappedType that marks given or all fields as optional
* @param baseType
* @param keys
* @param options
*/
export declare function PartialType(baseType: string | Type, keys: string[], options?: DataType.Options): Type;