@wayward/types 2.14.2-beta.dev.20241222.1 → 2.14.3-beta
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/definitions/game/IGlobal.d.ts +3 -0
- package/definitions/game/event/EventBuses.d.ts +18 -10
- package/definitions/game/event/EventManager.d.ts +7 -5
- package/definitions/game/game/Game.d.ts +2 -0
- package/definitions/game/game/IGame.d.ts +2 -1
- package/definitions/game/game/entity/Entity.d.ts +11 -9
- package/definitions/game/game/entity/EntityWithStats.d.ts +2 -1
- package/definitions/game/game/entity/IEntity.d.ts +2 -1
- package/definitions/game/game/entity/action/ActionsRegistration.d.ts +1 -1
- package/definitions/game/game/entity/action/actions/StokeFire.d.ts +1 -1
- package/definitions/game/game/entity/action/actions/moveItem/MoveItemFilterArgument.d.ts +3 -0
- package/definitions/game/game/entity/action/usable/IUsableAction.d.ts +18 -2
- package/definitions/game/game/entity/action/usable/UsableAction.d.ts +19 -2
- package/definitions/game/game/entity/action/usable/UsableActionRegistrar.d.ts +7 -1
- package/definitions/game/game/entity/ai/AI.d.ts +4 -0
- package/definitions/game/game/entity/ai/AiManager.d.ts +2 -2
- package/definitions/game/game/entity/creature/Creature.d.ts +3 -3
- package/definitions/game/game/entity/creature/CreatureManager.d.ts +1 -1
- package/definitions/game/game/entity/npc/NPC.d.ts +5 -6
- package/definitions/game/game/entity/player/Player.d.ts +2 -2
- package/definitions/game/game/inspection/IInspection.d.ts +1 -4
- package/definitions/game/game/inspection/InfoProvider.d.ts +2 -1
- package/definitions/game/game/inspection/InspectionsHandler.d.ts +2 -1
- package/definitions/game/game/inspection/inspections/ActionInspection.d.ts +1 -0
- package/definitions/game/game/inspection/inspections/action/IActionInspection.d.ts +26 -0
- package/definitions/game/game/island/Island.d.ts +3 -0
- package/definitions/game/game/item/Item.d.ts +0 -1
- package/definitions/game/game/item/ItemFinder.d.ts +1 -1
- package/definitions/game/game/meta/SaveLoad.d.ts +1 -1
- package/definitions/game/game/options/IGameOptions.d.ts +6 -1
- package/definitions/game/language/Dictionary.d.ts +128 -127
- package/definitions/game/language/DictionaryMap.d.ts +252 -249
- package/definitions/game/language/Translation.d.ts +2 -2
- package/definitions/game/language/english/ui/ActionSlotItemMethods.d.ts +1 -1
- package/definitions/game/language/english/ui/ActionSlotTypes.d.ts +13 -0
- package/definitions/game/language/segment/BindSegment.d.ts +2 -2
- package/definitions/game/language/segment/InterpolateArgumentSegment.d.ts +2 -2
- package/definitions/game/language/segment/NumberSegment.d.ts +4 -4
- package/definitions/game/language/segment/ReferenceSegment.d.ts +2 -2
- package/definitions/game/language/segment/ReformatSegment.d.ts +2 -2
- package/definitions/game/language/segment/Segments.d.ts +1 -1
- package/definitions/game/language/segment/TranslationSegment.d.ts +4 -4
- package/definitions/game/mod/IMod.d.ts +2 -1
- package/definitions/game/renderer/RenderersNotifiers.d.ts +1 -1
- package/definitions/game/renderer/notifier/Notifier.d.ts +4 -1
- package/definitions/game/renderer/world/WorldRenderer.d.ts +4 -0
- package/definitions/game/resource/IResourceLoader.d.ts +51 -48
- package/definitions/game/save/data/SaveData.d.ts +2 -0
- package/definitions/game/save/data/SaveDataGlobal.d.ts +2 -0
- package/definitions/game/save/serializer/PropertiesToSerialize.d.ts +6 -0
- package/definitions/game/save/upgrade/UpgradeVersion.d.ts +6 -1
- package/definitions/game/save/upgrade/versions/beta2.14.0/_beta.2.14.0-dev20240828.d.ts +1 -1
- package/definitions/game/save/upgrade/versions/beta2.14.0/{beta2.14.0-dev1.d.ts → beta2.14.0-dev00000001.d.ts} +1 -1
- package/definitions/game/save/upgrade/versions/beta2.14.0/{beta2.14.0-dev2.d.ts → beta2.14.0-dev00000002.d.ts} +1 -1
- package/definitions/game/save/upgrade/versions/beta2.14.0/beta2.14.0-dev20240827.d.ts +1 -1
- package/definitions/game/save/upgrade/versions/beta2.14.0/beta2.14.0-dev20240828.d.ts +1 -1
- package/definitions/game/save/upgrade/versions/beta2.14.0/beta2.14.0-dev20240829.d.ts +1 -1
- package/definitions/game/save/upgrade/versions/beta2.14.0/beta2.14.0-dev20240901.d.ts +1 -1
- package/definitions/game/save/upgrade/versions/beta2.14.0/beta2.14.0-dev20240905.d.ts +1 -1
- package/definitions/game/save/upgrade/versions/beta2.14.0/beta2.14.0-dev20241024.d.ts +1 -1
- package/definitions/game/save/upgrade/versions/beta2.14.0/beta2.14.0-dev20241129.d.ts +1 -1
- package/definitions/game/save/upgrade/versions/beta2.14.3/beta2.14.3-dev20241223.d.ts +12 -0
- package/definitions/game/steamworks/ISteamworks.d.ts +1 -0
- package/definitions/game/steamworks/Steamworks.d.ts +15 -0
- package/definitions/game/ui/component/Component.d.ts +2 -0
- package/definitions/game/ui/component/ContextMenu.d.ts +1 -1
- package/definitions/game/ui/component/IComponent.d.ts +2 -1
- package/definitions/game/ui/old/OldUi.d.ts +1 -1
- package/definitions/game/ui/screen/screens/game/component/ItemComponent.d.ts +3 -99
- package/definitions/game/ui/screen/screens/game/component/container/ContainerBucketItemList.d.ts +6 -7
- package/definitions/game/ui/screen/screens/game/component/item/IItemComponent.d.ts +65 -0
- package/definitions/game/ui/screen/screens/game/component/item/ItemComponentEventBus.d.ts +39 -0
- package/definitions/game/ui/screen/screens/game/component/item/ItemComponentHandler.d.ts +46 -0
- package/definitions/game/ui/screen/screens/game/component/item/ItemComponentTradeManager.d.ts +32 -0
- package/definitions/game/ui/screen/screens/game/dialog/EquipmentDialog.d.ts +2 -2
- package/definitions/game/ui/screen/screens/game/static/actions/ActionSlot.d.ts +8 -10
- package/definitions/game/ui/screen/screens/game/static/actions/ActionSlotConfigurationColumn.d.ts +2 -1
- package/definitions/game/ui/screen/screens/game/static/actions/IActionsDrawer.d.ts +3 -3
- package/definitions/game/utilities/Version.d.ts +16 -7
- package/definitions/game/utilities/dev/Debug.d.ts +4 -0
- package/definitions/game/utilities/memory/MemoryLeakDetector.d.ts +1 -1
- package/definitions/game/utilities/object/Merge.d.ts +2 -0
- package/definitions/game/utilities/string/Interpolator.d.ts +37 -6
- package/definitions/hosts/shared/globalTypes.d.ts +4 -0
- package/definitions/hosts/shared/globals.d.ts +2 -2
- package/definitions/utilities/Errors.d.ts +10 -0
- package/definitions/utilities/Functions.d.ts +1 -1
- package/definitions/utilities/Log.d.ts +9 -0
- package/definitions/utilities/collection/map/IterableWeakMap.d.ts +35 -0
- package/definitions/utilities/collection/map/LimitedMap.d.ts +45 -0
- package/definitions/utilities/dev/DebugShared.d.ts +23 -0
- package/definitions/utilities/event/EventEmitter.d.ts +27 -3
- package/definitions/utilities/event/EventManager.d.ts +11 -1
- package/definitions/utilities/prototype/Define.d.ts +2 -0
- package/package.json +1 -1
@@ -0,0 +1,45 @@
|
|
1
|
+
/*!
|
2
|
+
* Copyright 2011-2024 Unlok
|
3
|
+
* https://www.unlok.ca
|
4
|
+
*
|
5
|
+
* Credits & Thanks:
|
6
|
+
* https://www.unlok.ca/credits-thanks/
|
7
|
+
*
|
8
|
+
* Wayward is a copyrighted and licensed work. Modification and/or distribution of any source files is prohibited. If you wish to modify the game in any way, please refer to the modding guide:
|
9
|
+
* https://github.com/WaywardGame/types/wiki
|
10
|
+
*/
|
11
|
+
type MapIt<K, V> = Iterable<readonly [K, V]>;
|
12
|
+
type MapArr<K, V> = ReadonlyArray<readonly [K, V]>;
|
13
|
+
export default class LimitedMap<K, V> extends Map<K, V> {
|
14
|
+
readonly maxSize: number;
|
15
|
+
constructor(maxSize: number);
|
16
|
+
constructor(iterable: MapIt<K, V> | null, maxSize: number);
|
17
|
+
constructor(entries: MapArr<K, V> | null, maxSize: number);
|
18
|
+
private disposeHandler?;
|
19
|
+
/**
|
20
|
+
* Set a handler that handles when the map exceeds its limit, deleting the oldest item.
|
21
|
+
*
|
22
|
+
* Return `false` from the handler to instead "bump" the first item to the end, and then try to delete the oldest item again.
|
23
|
+
*
|
24
|
+
* Returning `false` for every item will forcibly delete the oldest item.
|
25
|
+
*/
|
26
|
+
setDisposeHandler(handler: (key: K, value: V, canCancel: boolean) => boolean | void): this;
|
27
|
+
/**
|
28
|
+
* 1. Sets the given key and value in the map.
|
29
|
+
* 2. If/while the map size exceeds the limit, the dispose handler is called for the oldest item.
|
30
|
+
* 3. If the handler returns `false`, the item is instead "bumped" to the end of the map.
|
31
|
+
* 4. If the handler returns `false` for every item, oldest items are forcibly deleted until the map no longer exceeds the limit.
|
32
|
+
*/
|
33
|
+
set(key: K, value: V): this;
|
34
|
+
private bumping;
|
35
|
+
bump(key: K): boolean;
|
36
|
+
/**
|
37
|
+
* Deletes the item with the given key, and calls the dispose handler if it's been set.
|
38
|
+
*/
|
39
|
+
delete(key: K): boolean;
|
40
|
+
/**
|
41
|
+
* Clears the map, calling the dispose handler for each item if it's been set.
|
42
|
+
*/
|
43
|
+
clear(): void;
|
44
|
+
}
|
45
|
+
export {};
|
@@ -0,0 +1,23 @@
|
|
1
|
+
/*!
|
2
|
+
* Copyright 2011-2024 Unlok
|
3
|
+
* https://www.unlok.ca
|
4
|
+
*
|
5
|
+
* Credits & Thanks:
|
6
|
+
* https://www.unlok.ca/credits-thanks/
|
7
|
+
*
|
8
|
+
* Wayward is a copyrighted and licensed work. Modification and/or distribution of any source files is prohibited. If you wish to modify the game in any way, please refer to the modding guide:
|
9
|
+
* https://github.com/WaywardGame/types/wiki
|
10
|
+
*/
|
11
|
+
declare namespace DebugShared {
|
12
|
+
const SYMBOL_JIT: unique symbol;
|
13
|
+
export interface JIT<A extends any[] = []> {
|
14
|
+
(): any;
|
15
|
+
(...args: A): any;
|
16
|
+
[SYMBOL_JIT]: true;
|
17
|
+
}
|
18
|
+
export function isJIT(value: unknown): value is JIT;
|
19
|
+
export function JIT<A extends any[]>(debug: JIT, fn: (debug: any, ...args: A) => any): JIT<A>;
|
20
|
+
export function JIT<A extends any[]>(fn: (...args: A) => any): JIT<A>;
|
21
|
+
export {};
|
22
|
+
}
|
23
|
+
export default DebugShared;
|
@@ -8,6 +8,7 @@
|
|
8
8
|
* Wayward is a copyrighted and licensed work. Modification and/or distribution of any source files is prohibited. If you wish to modify the game in any way, please refer to the modding guide:
|
9
9
|
* https://github.com/WaywardGame/types/wiki
|
10
10
|
*/
|
11
|
+
import { IterableWeakMap } from "@wayward/utilities/collection/map/IterableWeakMap";
|
11
12
|
import { PriorityMap } from "@wayward/utilities/collection/map/PriorityMap";
|
12
13
|
export declare enum Priority {
|
13
14
|
Lowest = -2000,
|
@@ -24,12 +25,16 @@ type Abstract<T> = Function & {
|
|
24
25
|
};
|
25
26
|
type Constructor<T> = new (...args: any[]) => T;
|
26
27
|
type ClassOrAbstractClass<T> = Abstract<T> | Constructor<T>;
|
28
|
+
export interface IEventSubscriberEvents {
|
29
|
+
releaseEventSubscriptions(): any;
|
30
|
+
}
|
27
31
|
export interface IEventEmitterHost<E> {
|
28
32
|
event: IEventEmitter<this | null, E>;
|
29
33
|
}
|
30
34
|
export type IEventEmitterHostClass<E> = ClassOrAbstractClass<IEventEmitterHost<E>>;
|
31
35
|
export type Events<T> = T extends IEventEmitterHost<infer E> ? E : T extends IEventEmitterHostClass<infer E> ? E : never;
|
32
|
-
export type
|
36
|
+
export type EventPriorityMapKV = string | Handler<any, any>;
|
37
|
+
export type EventPriorityMap = PriorityMap<Map<EventPriorityMapKV, EventPriorityMapKV> | IterableWeakMap<EventPriorityMapKV, EventPriorityMapKV>>;
|
33
38
|
export interface ITrueEventEmitterHostClass<E> extends Class<any> {
|
34
39
|
[SYMBOL_SUPERCLASSES]: Array<ITrueEventEmitterHostClass<E>>;
|
35
40
|
[SYMBOL_SUBSCRIPTIONS]: Map<any, Map<keyof E, EventPriorityMap>>;
|
@@ -59,8 +64,14 @@ export interface IEventEmitter<H = any, E = any> {
|
|
59
64
|
emitAsyncParallel<K extends keyof E>(event: K, ...args: ArgsOf<E[K]>): Promise<Array<(Extract<ReturnOf<E[K]>, Promise<any>> extends Promise<infer R> ? R : never) | Exclude<ReturnOf<E[K]>, Promise<any>>>> & {
|
60
65
|
isResolved?: true;
|
61
66
|
};
|
67
|
+
subscribe<K extends ArrayOr<keyof E>>(host: IEventEmitterHost<IEventSubscriberEvents>, event: K, handler: Handler<H, K extends any[] ? E[K[number]] : E[Extract<K, keyof E>]>, priority?: number, once?: boolean): H;
|
68
|
+
/** @deprecated */
|
62
69
|
subscribe<K extends ArrayOr<keyof E>>(event: K, handler: Handler<H, K extends any[] ? E[K[number]] : E[Extract<K, keyof E>]>, priority?: number, once?: boolean): H;
|
70
|
+
subscribeUnsafe<K extends ArrayOr<keyof E>>(event: K, handler: Handler<H, K extends any[] ? E[K[number]] : E[Extract<K, keyof E>]>, priority?: number, once?: boolean): H;
|
71
|
+
subscribeNext<K extends ArrayOr<keyof E>>(host: IEventEmitterHost<IEventSubscriberEvents>, event: K, handler: Handler<H, K extends any[] ? E[K[number]] : E[Extract<K, keyof E>]>, priority?: number): H;
|
72
|
+
/** @deprecated */
|
63
73
|
subscribeNext<K extends ArrayOr<keyof E>>(event: K, handler: Handler<H, K extends any[] ? E[K[number]] : E[Extract<K, keyof E>]>, priority?: number): H;
|
74
|
+
subscribeNextUnsafe<K extends ArrayOr<keyof E>>(event: K, handler: Handler<H, K extends any[] ? E[K[number]] : E[Extract<K, keyof E>]>, priority?: number): H;
|
64
75
|
unsubscribe<K extends ArrayOr<keyof E>>(event: K, handler: Handler<H, K extends any[] ? E[K[number]] : E[Extract<K, keyof E>]>, priority?: number): boolean;
|
65
76
|
waitFor<K extends ArrayOr<keyof E>>(events: K, priority?: number): Promise<ArgsOf<K extends any[] ? E[K[number]] : E[Extract<K, keyof E>]>>;
|
66
77
|
race<K extends ArrayOr<keyof E>>(raceWith: Promise<any>, events: K, priority?: number): Promise<ArgsOf<K extends any[] ? E[K[number]] : E[Extract<K, keyof E>]>>;
|
@@ -72,8 +83,14 @@ export interface IEventEmitter<H = any, E = any> {
|
|
72
83
|
export interface IUntilSubscriber<H, E> {
|
73
84
|
until(promise: Promise<any>): this;
|
74
85
|
until<E2>(emitter: IEventEmitterHost<E2>, ...events: Array<keyof E2>): this;
|
86
|
+
subscribe<K extends ArrayOr<keyof E>>(host: IEventEmitterHost<IEventSubscriberEvents>, event: K, handler: Handler<H, K extends any[] ? E[K[number]] : E[Extract<K, keyof E>]>, priority?: number): H;
|
87
|
+
/** @deprecated */
|
75
88
|
subscribe<K extends ArrayOr<keyof E>>(event: K, handler: Handler<H, K extends any[] ? E[K[number]] : E[Extract<K, keyof E>]>, priority?: number): H;
|
89
|
+
subscribeUnsafe<K extends ArrayOr<keyof E>>(event: K, handler: Handler<H, K extends any[] ? E[K[number]] : E[Extract<K, keyof E>]>, priority?: number): H;
|
90
|
+
subscribeNext<K extends ArrayOr<keyof E>>(host: IEventEmitterHost<IEventSubscriberEvents>, event: K, handler: Handler<H, K extends any[] ? E[K[number]] : E[Extract<K, keyof E>]>, priority?: number): H;
|
91
|
+
/** @deprecated */
|
76
92
|
subscribeNext<K extends ArrayOr<keyof E>>(event: K, handler: Handler<H, K extends any[] ? E[K[number]] : E[Extract<K, keyof E>]>, priority?: number): H;
|
93
|
+
subscribeNextUnsafe<K extends ArrayOr<keyof E>>(event: K, handler: Handler<H, K extends any[] ? E[K[number]] : E[Extract<K, keyof E>]>, priority?: number): H;
|
77
94
|
}
|
78
95
|
declare class EventEmitter<H, E> {
|
79
96
|
private readonly host;
|
@@ -92,8 +109,15 @@ declare class EventEmitter<H, E> {
|
|
92
109
|
emitReduce<K extends keyof E, A extends ReturnOf<E[K]> & Head<ArgsOf<E[K]>>>(event: K, arg: A, ...args: Tail<ArgsOf<E[K]>>): Extract<ReturnOf<E[K]> & Head<ArgsOf<E[K]>>, undefined> extends undefined ? (undefined extends A ? ReturnOf<E[K]> : A) : ReturnOf<E[K]>;
|
93
110
|
emitAsync<K extends keyof E>(event: K, ...args: ArgsOf<E[K]>): Promise<any[]>;
|
94
111
|
emitAsyncParallel<K extends keyof E>(event: K, ...args: ArgsOf<E[K]>): Promise<any[]>;
|
95
|
-
|
96
|
-
|
112
|
+
subscribeUnsafe<K extends ArrayOr<keyof E>>(events: K, handler: Handler<H, K extends any[] ? E[K[number]] : E[Extract<K, keyof E>]>, priority?: number, once?: boolean): H;
|
113
|
+
subscribe<K extends ArrayOr<keyof E>>(host: IEventEmitterHost<IEventSubscriberEvents>, events: K, handler: Handler<H, K extends any[] ? E[K[number]] : E[Extract<K, keyof E>]>, priority?: number, once?: boolean): H;
|
114
|
+
/** @deprecated */
|
115
|
+
subscribe<K extends ArrayOr<keyof E>>(events: K, handler: Handler<H, K extends any[] ? E[K[number]] : E[Extract<K, keyof E>]>, priority?: number, once?: boolean): H;
|
116
|
+
private subscribeInternal;
|
117
|
+
subscribeNextUnsafe<K extends ArrayOr<keyof E>>(events: K, handler: Handler<H, K extends any[] ? E[K[number]] : E[Extract<K, keyof E>]>, priority?: number): H;
|
118
|
+
subscribeNext<K extends ArrayOr<keyof E>>(host: IEventEmitterHost<IEventSubscriberEvents>, events: K, handler: Handler<H, K extends any[] ? E[K[number]] : E[Extract<K, keyof E>]>, priority?: number): H;
|
119
|
+
/** @deprecated */
|
120
|
+
subscribeNext<K extends ArrayOr<keyof E>>(events: K, handler: Handler<H, K extends any[] ? E[K[number]] : E[Extract<K, keyof E>]>, priority?: number): H;
|
97
121
|
unsubscribe<K extends ArrayOr<keyof E>>(events: K, handler: keyof H | Handler<H, K extends any[] ? E[K[number]] : E[Extract<K, keyof E>]>, priority?: number): boolean;
|
98
122
|
waitFor<K extends ArrayOr<keyof E>>(events: K, priority?: number): Promise<ArgsOf<K extends any[] ? E[K[number]] : E[Extract<K, keyof E>]>>;
|
99
123
|
race<K extends ArrayOr<keyof E>>(raceWith: number | Promise<any>, events: K, priority?: number): Promise<ArgsOf<K extends any[] ? E[K[number]] : E[Extract<K, keyof E>]>>;
|
@@ -10,7 +10,7 @@
|
|
10
10
|
*/
|
11
11
|
import type { EventBusManager } from "@wayward/utilities/event/EventBusManager";
|
12
12
|
import type EventEmitter from "@wayward/utilities/event/EventEmitter";
|
13
|
-
import type { Events, IEventEmitterHost, IEventEmitterHostClass } from "@wayward/utilities/event/EventEmitter";
|
13
|
+
import type { Events, IEventEmitterHost, IEventEmitterHostClass, IEventSubscriberEvents } from "@wayward/utilities/event/EventEmitter";
|
14
14
|
type HostOrHostClass = IEventEmitterHost<any> | IEventEmitterHostClass<any>;
|
15
15
|
type HostFromHostOrHostClass<H> = H extends {
|
16
16
|
event: EventEmitter<null, any>;
|
@@ -55,7 +55,17 @@ export declare class EventManager<EventBus extends number, EventBuses extends Re
|
|
55
55
|
waitFor<E extends EmitterOrBus<EventBus>, K extends Event<EventBus, EventBuses, E>>(emitter: E, event: K, priority?: number): Promise<Parameters<Handler<EventBus, EventBuses, E, K>>>;
|
56
56
|
until<E2>(emitter: IEventEmitterHost<E2>, ...events: Array<keyof E2>): IEventManagerUntil<EventBus, EventBuses>;
|
57
57
|
until(promise: Promise<any>): IEventManagerUntil<EventBus, EventBuses>;
|
58
|
+
registerEventBusSubscriber(subscriber: IEventEmitterHost<IEventSubscriberEvents>): void;
|
59
|
+
/**
|
60
|
+
* @deprecated This subscriber object will not be automatically cleaned up!
|
61
|
+
*
|
62
|
+
* If this is intentional, switch to {@link registerEventBusSubscriberUnsafe}.
|
63
|
+
*
|
64
|
+
* Otherwise, this subscriber object needs to be an {@link IEventEmitterHost}<{@link IEventSubscriberEvents}> —
|
65
|
+
* the `"releaseEventSubscriptions"` call will automatically clean up this subscriber.
|
66
|
+
*/
|
58
67
|
registerEventBusSubscriber(subscriber: object): void;
|
68
|
+
registerEventBusSubscriberUnsafe(subscriber: object): void;
|
59
69
|
deregisterEventBusSubscriber(subscriber: object): boolean;
|
60
70
|
}
|
61
71
|
declare const SYMBOL_EVENT_HANDLERS: unique symbol;
|
@@ -11,6 +11,8 @@
|
|
11
11
|
type Implementation<P, K extends keyof P> = (this: P, ...args: P[K] extends (...args: infer A) => any ? A : []) => P[K] extends (...args: any[]) => infer R ? R : never;
|
12
12
|
declare function Define<P, K extends string & keyof P>(proto: P, key: K, implementation: Implementation<P, K>): void;
|
13
13
|
declare namespace Define {
|
14
|
+
export function set<P, K extends string & keyof P>(proto: P, key: K, value: P[K]): P[K];
|
15
|
+
export function set<V>(proto: any, key: PropertyKey, value: V): V;
|
14
16
|
export function all<P, K extends string & keyof P>(protos: P[], key: K, implementation: Implementation<P, K>): void;
|
15
17
|
interface IMagicImplementation<O, K extends string & keyof O> {
|
16
18
|
get(this: O): O[K];
|