Type Alias DeepAssign<To, From>

DeepAssign: {
    [K in keyof To | keyof From]: K extends keyof To
        ? K extends keyof From
            ? To[K] extends object
                ? From[K] extends object ? Expand<DeepAssign<To[K], From[K]>> : never
                : From[K] extends object ? never : From[K]
            : To[K]
        : From[K & keyof From]
}

Type Parameters

  • To extends object
  • From extends object