static-injector
Version:
Angular 依赖注入独立版本;Angular dependency injection standalone version
32 lines (31 loc) • 1.39 kB
TypeScript
/**
* @license
* Copyright Google LLC All Rights Reserved.
*
* Use of this source code is governed by an MIT-style license that can be
* found in the LICENSE file at https://angular.dev/license
*/
import { ValueEqualityFn } from './equality';
import { ReactiveNode, ReactiveHookFn, SIGNAL } from './graph';
export interface SignalNode<T> extends ReactiveNode {
value: T;
equal: ValueEqualityFn<T>;
}
export type SignalBaseGetter<T> = (() => T) & {
readonly [SIGNAL]: unknown;
};
export type SignalSetter<T> = (newValue: T) => void;
export type SignalUpdater<T> = (updateFn: (value: T) => T) => void;
export interface SignalGetter<T> extends SignalBaseGetter<T> {
readonly [SIGNAL]: SignalNode<T>;
}
/**
* Creates a `Signal` getter, setter, and updater function.
*/
export declare function createSignal<T>(initialValue: T, equal?: ValueEqualityFn<T>): [SignalGetter<T>, SignalSetter<T>, SignalUpdater<T>];
export declare function setPostSignalSetFn(fn: ReactiveHookFn | null): ReactiveHookFn | null;
export declare function signalGetFn<T>(node: SignalNode<T>): T;
export declare function signalSetFn<T>(node: SignalNode<T>, newValue: T): void;
export declare function signalUpdateFn<T>(node: SignalNode<T>, updater: (value: T) => T): void;
export declare function runPostSignalSetFn<T>(node: SignalNode<T>): void;
export declare const SIGNAL_NODE: SignalNode<unknown>;