UNPKG

@msom/common

Version:

@msom/common

73 lines 3.46 kB
import { Collection } from "../collection"; import { IPermission } from "../permission"; export declare function GeneratSymbolKey(key: string): symbol; export declare function setGlobalData<T>(key: string, data: T): T; export declare function getGlobalData(key: string): unknown; export type Nullable = null | undefined; export type createFunction<T extends unknown[]> = T extends [ ...infer P, infer R ] ? (...args: P) => R : never; declare const propertyPermission: { enumerable: number; writable: number; configurable: number; }; export declare const PropertyPermission: { new (permission?: number): { permission: number; readonly permissionState: { enumerable: number; writable: number; configurable: number; }; "__#1@#parsePermissions"<Ps extends ("enumerable" | "writable" | "configurable")[]>(permissions: Ps, force?: boolean): Ps; has(...permissions: ("enumerable" | "writable" | "configurable")[]): boolean; add(...permissions: ("enumerable" | "writable" | "configurable")[]): /*elided*/ any; remove(...permissions: ("enumerable" | "writable" | "configurable")[]): /*elided*/ any; get<Ps extends ("enumerable" | "writable" | "configurable")[]>(...permissions: Ps): { [k in Ps extends [] ? "enumerable" | "writable" | "configurable" : Ps[number]]: boolean; }; }; from(flag: number | IPermission<{ enumerable: number; writable: number; configurable: number; }>): { permission: number; readonly permissionState: { enumerable: number; writable: number; configurable: number; }; "__#1@#parsePermissions"<Ps extends ("enumerable" | "writable" | "configurable")[]>(permissions: Ps, force?: boolean): Ps; has(...permissions: ("enumerable" | "writable" | "configurable")[]): boolean; add(...permissions: ("enumerable" | "writable" | "configurable")[]): /*elided*/ any; remove(...permissions: ("enumerable" | "writable" | "configurable")[]): /*elided*/ any; get<Ps extends ("enumerable" | "writable" | "configurable")[]>(...permissions: Ps): { [k in Ps extends [] ? "enumerable" | "writable" | "configurable" : Ps[number]]: boolean; }; }; }; /** * @param target * @param propKey * @param permission 7 * * const enumerable = 0b100; * * const writable = 0b010; * * const configurable = 0b001; * @param value */ export declare function defineProperty<T>(target: T, propKey: string | symbol, permission?: IPermission<typeof propertyPermission> | number, value?: unknown): void; /** * @param target * @param propKey * @param permission [0-5] * * const configurable = 0b001; * * const enumerable = 0b100; * * 访问器属性修饰符无法设置writable * @param getter * @param setter */ export declare function defineAccesser<T, R>(target: T, propKey: symbol | string, permission?: IPermission<typeof propertyPermission> | number, getter?: () => R, setter?: (value: R) => void): void; export declare function tryCall<F extends createFunction<[...unknown[], unknown]>>(call: F, data?: Parameters<F>, receiver?: unknown): ReturnType<F>; export declare function equal(value: unknown, otherValue: unknown): boolean; export declare function ownKeysAndPrototypeOwnKeys($events: object, keys?: Collection<PropertyKey>): Collection<PropertyKey>; export {}; //# sourceMappingURL=index.d.ts.map