type Path = string | Array; export function get(object: T, path: Path, defaultValue?: K): K | undefined { const pathArray = Array.isArray(path) ? path : path.match(/([^[.\]])+/g) || []; return ( pathArray.reduce((acc, key) => { if (acc && typeof acc === "object") { return (acc as any)[key]; } return undefined; }, object as any) ?? defaultValue ); }