Draft<T>: T extends PrimitiveType
    ? T
    : T extends AtomicObject
        ? T
        : T extends ReadonlyMap<infer K, infer V>
            ? Map<Draft<K>, Draft<V>>
            : T extends ReadonlySet<infer V>
                ? Set<Draft<V>>
                : T extends WeakReferences
                    ? T
                    : T extends object
                        ? WritableDraft<T>
                        : T

Convert a readonly type into a mutable type, if possible

Type Parameters

  • T