MCPcopy Index your code
hub / github.com/angular/angular / signal

Function signal

packages/core/src/render3/reactivity/signal.ts:72–89  ·  view source on GitHub ↗
(initialValue: T, options?: CreateSignalOptions<T>)

Source from the content-addressed store, hash-verified

70 * @see [Angular Signals](guide/signals)
71 */
72export function signal<T>(initialValue: T, options?: CreateSignalOptions<T>): WritableSignal<T> {
73 const [get, set, update] = createSignal(initialValue, options?.equal);
74
75 const signalFn = get as SignalGetter<T> & WritableSignal<T>;
76 const node = signalFn[SIGNAL];
77
78 signalFn.set = set;
79 signalFn.update = update;
80 signalFn.asReadonly = signalAsReadonlyFn.bind(signalFn as any) as () => Signal<T>;
81
82 if (typeof ngDevMode !== 'undefined' && ngDevMode) {
83 const debugName = options?.debugName;
84 node.debugName = debugName;
85 signalFn.toString = () => `[Signal${debugName ? ' (' + debugName + ')' : ''}: ${signalFn()}]`;
86 }
87
88 return signalFn as WritableSignal<T>;
89}
90
91export function signalAsReadonlyFn<T>(this: SignalGetter<T>): Signal<T> {
92 const node = this[SIGNAL] as SignalNode<T> & {readonlyFn?: Signal<T>};

Callers 15

TestCompClass · 0.90
toSignalFunction · 0.90
rxResourceFunction · 0.90
test_bed_spec.tsFile · 0.90
Thing1Class · 0.90
CheckAlwaysCmpClass · 0.90
AppClass · 0.90
AppClass · 0.90

Calls 2

createSignalFunction · 0.90
bindMethod · 0.65

Tested by 9

setupRevealAnswerValuesFunction · 0.72
beforeEachFunction · 0.72
configureTestingModuleFunction · 0.72
configureTestingModuleFunction · 0.72
configureTestingModuleFunction · 0.72
configureTestingModuleFunction · 0.72

Used in the wild real call sites across dependent graphs

searching dependent graphs…