Vue OpenAPI Query Documentation
    Preparing search index...

    Type Alias Writable<T>

    Writable: T extends (infer E)[]
        ? Writable<E>[]
        : T extends readonly (infer E)[]
            ? Writable<E>[]
            : T extends object
                ? T extends ((...args: never[]) => unknown)
                | Date
                | Blob
                | File
                    ? T
                    : {
                        -readonly [K in keyof T as IfEquals<
                            Pick<T, K>,
                            { -readonly [Q in K]: T[K] },
                            false,
                            true,
                        > extends false
                            ? K
                            : never]: Writable<T[K]>
                    }
                : T

    Deep-strip properties whose TypeScript readonly modifier originates from an OpenAPI readOnly: true marker, recursing into nested objects and arrays.

    Direction semantics — response shape → request shape. readOnly fields (e.g. server-assigned id, createdAt) must not appear in request bodies. Writable<T> excludes those keys entirely at every nesting level so generated Request types are always write-safe.

    Consumed by ApiRequest. Previously shallow (only top-level keys were filtered); now recurses like RequireAll so nested readOnly props (e.g. a createdAt inside a PATCH group object) are also excluded.

    Type Parameters

    • T
    • Mutable — strips the readonly modifier without removing keys
    • RequireAll — response presence policy (deep-require)