W3cubDocs

/Angular

WritableResource

A Resource with a mutable value.

API

interface WritableResource<T> extends Resource<T> {
  readonly value: WritableSignal<T>;
  hasValue(this: T extends undefined ? this : never): this is WritableResource<Exclude<T, undefined>>;
  hasValue(): boolean;
  set(value: T): void;
  update(updater: (value: T) => T): void;
  asReadonly(): Resource<T>;
  reload(): boolean;
  readonly override status: Signal<ResourceStatus>;
  readonly override error: Signal<Error | undefined>;
  readonly override isLoading: Signal<boolean>;
  readonly override snapshot: Signal<ResourceSnapshot<T>>;
}

value

WritableSignal<T>

hasValue

this is WritableResource<Exclude<T, undefined>>
@paramthisT extends undefined ? this : never
@returnsthis is WritableResource<Exclude<T, undefined>>

hasValue

boolean
@returnsboolean

set

void

Convenience wrapper for value.set.

@paramvalueT
@returnsvoid

update

void

Convenience wrapper for value.update.

@paramupdater(value: T) => T
@returnsvoid

asReadonly

Resource<T>
@returnsResource<T>

reload

boolean

Instructs the resource to re-load any asynchronous dependency it may have.

Note that the resource will not enter its reloading state until the actual backend request is made.

@returnsboolean

status

Signal<ResourceStatus>

The current status of the Resource, which describes what the resource is currently doing and what can be expected of its value.

error

Signal<Error | undefined>

When in the error state, this returns the last known error from the Resource.

isLoading

Signal<boolean>

Whether this resource is loading a new value (or reloading the existing one).

snapshot

Signal<ResourceSnapshot<T>>

The current state of this resource, represented as a ResourceSnapshot.

Description

A Resource with a mutable value.

Overwriting the value of a resource sets it to the 'local' state.

Super-powered by Google ©2010–2025.
Code licensed under an MIT-style License. Documentation licensed under CC BY 4.0.
https://angular.dev/api/core/WritableResource