From 7b40d74fb438805069a72e26b68ea8068c737fd2 Mon Sep 17 00:00:00 2001 From: JoostK Date: Sun, 10 Sep 2023 19:00:58 +0200 Subject: [PATCH] refactor(core): let reactive node prototypes conform to their type (#51722) (#51772) This commit adds explicit type annotations to the reactive node prototype objects, such that the prototypes are type-checked against the interface they are supposed to (partially) implement. This also allows IDEs to better track usages of reactive node properties, improving code navigation. PR Close #51722 PR Close #51772 --- packages/core/src/render3/reactive_lview_consumer.ts | 2 +- packages/core/src/signals/src/graph.ts | 2 +- packages/core/src/signals/src/watch.ts | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/core/src/render3/reactive_lview_consumer.ts b/packages/core/src/render3/reactive_lview_consumer.ts index 14f33b33e91..84f8170848b 100644 --- a/packages/core/src/render3/reactive_lview_consumer.ts +++ b/packages/core/src/render3/reactive_lview_consumer.ts @@ -57,7 +57,7 @@ export function commitLViewConsumerIfHasProducers( currentConsumer = createLViewConsumer(); } -const REACTIVE_LVIEW_CONSUMER_NODE = { +const REACTIVE_LVIEW_CONSUMER_NODE: ReactiveLViewConsumer = { ...REACTIVE_NODE, consumerIsAlwaysLive: true, consumerMarkedDirty: (node: ReactiveLViewConsumer) => { diff --git a/packages/core/src/signals/src/graph.ts b/packages/core/src/signals/src/graph.ts index 7887843f9ea..5c4d01d8f6b 100644 --- a/packages/core/src/signals/src/graph.ts +++ b/packages/core/src/signals/src/graph.ts @@ -26,7 +26,7 @@ export function setActiveConsumer(consumer: ReactiveNode|null): ReactiveNode|nul return prev; } -export const REACTIVE_NODE = { +export const REACTIVE_NODE: ReactiveNode = { version: 0 as Version, dirty: false, producerNode: undefined, diff --git a/packages/core/src/signals/src/watch.ts b/packages/core/src/signals/src/watch.ts index 1b8dc5be00e..f3f1672ebe2 100644 --- a/packages/core/src/signals/src/watch.ts +++ b/packages/core/src/signals/src/watch.ts @@ -83,7 +83,7 @@ interface WatchNode extends ReactiveNode { ref: Watch; } -const WATCH_NODE = { +const WATCH_NODE: Partial = { ...REACTIVE_NODE, consumerIsAlwaysLive: true, consumerAllowSignalWrites: false,