/** * 该模块为旧版 decorators 提供了一个桥接方案,使它可以运作在新版 decorators 中 * @module */ import "./_dnt.polyfills.js"; import type { ClassAccessorDecorator, ClassDecorator, ClassFieldDecorator, ClassGetterDecorator, ClassMethodDecorator, ClassSetterDecorator } from "./decorators.js"; import type { Func } from "./func.js"; type RequiredKeys = Omit & Required>; type PropertyKey = keyof T & (string | symbol); /** * 参考 {@link MethodDecorator} */ export type ClassAccessorLegacyDecorator = (target: T, property: PropertyKey, descriptor: RequiredKeys, "get" | "set">) => void | TypedPropertyDescriptor; /** * 用于在标准 accessor-decorators 中使用旧版的 decorators */ export declare const legacyAccessor: (Class: C, builder: ClassAccessorLegacyDecorator, V>) => ClassAccessorDecorator, V>; /** * 参考 {@link MethodDecorator} */ export type ClassGetterLegacyDecorator = (target: T, property: PropertyKey, descriptor: RequiredKeys, "get">) => void | TypedPropertyDescriptor; /** * 用于在标准 accessor-getter 中使用旧版的 decorators */ export declare const legacyGetter: (Class: C, builder: ClassGetterLegacyDecorator, V>) => ClassGetterDecorator, V>; /** * 参考 {@link MethodDecorator} */ export type ClassSetterLegacyDecorator = (target: T, property: PropertyKey, descriptor: RequiredKeys, "set">) => void | TypedPropertyDescriptor; /** * 用于在标准 accessor-setter 中使用旧版的 decorators */ export declare const legacySetter: (Class: C, builder: ClassSetterLegacyDecorator, V>) => ClassSetterDecorator, V>; /** * 参考 {@link PropertyDecorator} */ export type ClassMethodLegacyDecorator = (target: T, property: PropertyKey, descriptor: RequiredKeys, "value">) => void; /** * 用于在标准 accessor-method 中使用旧版的 decorators */ export declare const legacyMethod: >>(Class: C, builder: ClassMethodLegacyDecorator, M>) => ClassMethodDecorator, M>; /** * 参考 {@link PropertyDecorator} */ export type ClassFieldLegacyDecorator = (target: T, property: PropertyKey) => void; /** * 用于在标准 accessor-field 中使用旧版的 decorators */ export declare const legacyField: (Class: C, builder: ClassFieldLegacyDecorator>) => ClassFieldDecorator, V>; type Class = abstract new (...args: any) => any; /** * 参考 {@link ClassDecorator} */ export type ClassLegacyDecorator = (target: C) => void; /** * 用于在标准 accessor-class 中使用旧版的 decorators */ export declare const legacyClass: (builder: ClassLegacyDecorator) => ClassDecorator; export {}; //# sourceMappingURL=decorators-legacy.d.ts.map