import { Object, List } from "ts-toolbelt"; import Value from "@dikac/t-value/value"; import Return from "@dikac/t-function/return/return"; /** * extract {@template ObjectTemplate} by {@template Key}, extracted value will be * removed from {@template ObjectTemplate} */ export default class Extract implements Readonly>> & Return>>> { readonly keys: Key; /** * extraction result */ readonly return: Object.Pick>; /** * contain original object source */ readonly value: Omit>; /** * @param value * source * * @param keys * key for extraction */ constructor(value: ObjectTemplate, keys: Key); }