Files
NapCatQQ/.pnpm-store/v3/files/f4/d806f2c33201b7ec8ef76372898a10c5ea68dcfc17e44e2daf88b4da6e6adc13255e32b988c87f04ae0bbc7072390744c4d3887c4f90d599128c9c3ee1e6e6
T
TanTan e311ca3275
Build NapCat Artifacts / Type Check & Test (push) Waiting to run
docs: 仓库链接指向本镜像仓库
2026-11-13 09:25:58 +08:00

21 lines
1.3 KiB
Plaintext

import type { TSchema } from '../schema/index';
import type { Ensure } from '../helpers/index';
import { ReadonlyKind } from '../symbols/index';
import type { TMappedResult } from '../mapped/index';
import { type TReadonlyFromMappedResult } from './readonly-from-mapped-result';
type TRemoveReadonly<T extends TSchema> = T extends TReadonly<infer S> ? S : T;
type TAddReadonly<T extends TSchema> = T extends TReadonly<infer S> ? TReadonly<S> : Ensure<TReadonly<T>>;
export type TReadonlyWithFlag<T extends TSchema, F extends boolean> = F extends false ? TRemoveReadonly<T> : TAddReadonly<T>;
export type TReadonly<T extends TSchema> = T & {
[ReadonlyKind]: 'Readonly';
};
/** `[Json]` Creates a Readonly property */
export declare function Readonly<T extends TMappedResult, F extends boolean>(schema: T, enable: F): TReadonlyFromMappedResult<T, F>;
/** `[Json]` Creates a Readonly property */
export declare function Readonly<T extends TSchema, F extends boolean>(schema: T, enable: F): TReadonlyWithFlag<T, F>;
/** `[Json]` Creates a Readonly property */
export declare function Readonly<T extends TMappedResult>(schema: T): TReadonlyFromMappedResult<T, true>;
/** `[Json]` Creates a Readonly property */
export declare function Readonly<T extends TSchema>(schema: T): TReadonlyWithFlag<T, true>;
export {};