toRaw<T> function

T toRaw<T>(
  1. Object? value
)

Returns the raw, original value from a reactive wrapper.

Works with Ref, ShallowRef, Computed, and Readonly. For non-reactive values, returns the value as-is.

Example:

final count = ref(42);
toRaw(count); // 42

final obj = ref({'a': 1});
toRaw(obj); // {'a': 1}

Implementation

T toRaw<T>(Object? value) {
  if (value is Ref<T>) {
    return value.raw;
  }
  if (value is ShallowRef<T>) {
    return value.raw;
  }
  if (value is Computed<T>) {
    return value.value;
  }
  if (value is Readonly<T>) {
    return toRaw<T>(value.source);
  }
  return value as T;
}