@pashoo2/clean-architecture-boilerplate
Version:
Clean architecture boilerplate
9 lines (8 loc) • 493 B
TypeScript
import { TPickReadOnlyProperties } from './common';
import { TPropertySerializable, TSerializableSimple } from './serialization';
export declare type TPickTransferableProperties<C extends Object> = {
[K in TPickReadOnlyProperties<C>]: C[K] extends TPropertySerializable | ITransferable | TSerializableSimple ? C[K] : C[K] extends {} ? TPickTransferableProperties<C[K]> : never;
};
export interface ITransferable {
getTransferableProps(): Readonly<TPickTransferableProperties<this>>;
}