UNPKG

@lithiumjs/angular

Version:

Reactive components made easy. Lithium provides utilities that enable seamless reactive state and event interactions for Angular components.

8 lines (7 loc) 825 B
import type { Observable } from "rxjs"; import type { Constructable, StringKey } from "./lang-utils"; import type { AsyncSourceKey } from "./metadata"; type ValidateAsyncSource<T, K extends StringKey<T>, Source extends string | undefined = AsyncSourceKey<T, K>> = Source extends StringKey<T> ? (T[Source] extends Observable<T[K]> ? T[Source] : never) : never; /** @PropertyDecoratorFactory */ export declare function AsyncState<Source extends string | undefined = undefined>(asyncSource?: Source): <ComponentT extends Constructable<any, any>, K extends StringKey<ComponentT>>(target: Source extends undefined ? ComponentT : (ValidateAsyncSource<ComponentT, K, Source> extends never ? never : ComponentT), key: Source extends undefined ? (ValidateAsyncSource<ComponentT, K> extends never ? never : K) : K) => void; export {};