@@ -60,7 +60,7 @@ export const enum WrappedSignalFlags {
60
60
61
61
export type AllSignalFlags = SignalFlags | WrappedSignalFlags ;
62
62
63
- export const throwIfQRLNotResolved = < T > ( qrl : QRL < ( ) => T > ) => {
63
+ export const throwIfQRLNotResolved = ( qrl : QRL ) => {
64
64
const resolved = qrl . resolved ;
65
65
if ( ! resolved ) {
66
66
// When we are creating a signal using a use method, we need to ensure
@@ -207,7 +207,6 @@ export class Signal<T = any> implements ISignal<T> {
207
207
}
208
208
return this . untrackedValue ;
209
209
}
210
-
211
210
set value ( value ) {
212
211
if ( value !== this . $untrackedValue$ ) {
213
212
DEBUG &&
@@ -334,6 +333,8 @@ export const triggerEffects = (
334
333
DEBUG && log ( 'done scheduling' ) ;
335
334
} ;
336
335
336
+ type ComputeQRL < T > = QRLInternal < ( prev : T | undefined ) => T > ;
337
+
337
338
/**
338
339
* A signal which is computed from other signals.
339
340
*
@@ -346,14 +347,14 @@ export class ComputedSignal<T> extends Signal<T> implements BackRef {
346
347
* The computed functions must be executed synchronously (because of this we need to eagerly
347
348
* resolve the QRL during the mark dirty phase so that any call to it will be synchronous). )
348
349
*/
349
- $computeQrl$ : QRLInternal < ( ) => T > ;
350
+ $computeQrl$ : ComputeQRL < T > ;
350
351
$flags$ : SignalFlags ;
351
352
$forceRunEffects$ : boolean = false ;
352
353
[ _EFFECT_BACK_REF ] : Map < EffectProperty | string , EffectSubscription > | null = null ;
353
354
354
355
constructor (
355
356
container : Container | null ,
356
- fn : QRLInternal < ( ) => T > ,
357
+ fn : ComputeQRL < T > ,
357
358
// We need a separate flag to know when the computation needs running because
358
359
// we need the old value to know if effects need running after computation
359
360
flags = SignalFlags . INVALID
@@ -426,14 +427,14 @@ export class ComputedSignal<T> extends Signal<T> implements BackRef {
426
427
}
427
428
}
428
429
429
- // Getters don't get inherited
430
- get value ( ) {
431
- return super . value ;
432
- }
433
-
430
+ // Make this signal read-only
434
431
set value ( _ : any ) {
435
432
throw qError ( QError . computedReadOnly ) ;
436
433
}
434
+ // Getters don't get inherited when overriding a setter
435
+ get value ( ) {
436
+ return super . value ;
437
+ }
437
438
}
438
439
439
440
export class WrappedSignal < T > extends Signal < T > implements BackRef {
@@ -511,13 +512,12 @@ export class WrappedSignal<T> extends Signal<T> implements BackRef {
511
512
}
512
513
return didChange ;
513
514
}
514
-
515
- // Getters don't get inherited
516
- get value ( ) {
517
- return super . value ;
518
- }
519
-
515
+ // Make this signal read-only
520
516
set value ( _ : any ) {
521
517
throw qError ( QError . wrappedReadOnly ) ;
522
518
}
519
+ // Getters don't get inherited when overriding a setter
520
+ get value ( ) {
521
+ return super . value ;
522
+ }
523
523
}
0 commit comments