ngrx-traits
ngrx-traits copied to clipboard
Error in generated typescript definitions
In the @ngrx-traits/signals package, the with-state-logger
and with-sync-to-web-storage
files are generating type definitions that fail to compile.
This can be seen here: https://stackblitz.com/edit/ngrx-signal-store-starter-7bcgrp?file=node_modules%2F%40ngrx-traits%2Fsignals%2Flib%2Fwith-sync-to-web-storage%2Fwith-sync-to-web-storage.d.ts
I'm not sure why this still is able to run, but if you right click on withSyncToWebStorage
in the imports and view the definitions, you will se the error. In my personal project I can't even get it to run if I import any functions at all from @ngrx-traits/signals, even if I don't use them.
The generated definition file is something like this:
export declare function withSyncToWebStorage<Input extends SignalStoreFeatureResult>({ key, type: storageType, saveStateChangesAfterMs, restoreOnInit, filterState, onRestore, }: {
key: string;
type: 'session' | 'local';
restoreOnInit?: boolean;
saveStateChangesAfterMs?: number;
filterState?: (state: Input['state']) => Partial<Input['state']>;
onRestore?: (store: Prettify<SignalStoreSlices<Input['state']> & Input['signals'] & Input['methods'] & StateSignal<Prettify<Input['state']>>>) => void;
}): import("@ngrx/signals").SignalStoreFeature<import("@ngrx/signals/src/signal-store-models").EmptyFeatureResult & Input extends infer T ? { [K in keyof T]: (import("@ngrx/signals/src/signal-store-models").EmptyFeatureResult & Input)[K]; } : never, {
state: Omit<Omit<{}, "saveToStorage" | "loadFromStorage" | "clearFromStore">, never>;
signals: Omit<Omit<{}, "saveToStorage" | "loadFromStorage" | "clearFromStore">, never>;
methods: Omit<Omit<{}, "saveToStorage" | "loadFromStorage" | "clearFromStore"> & {
saveToStorage(): void;
loadFromStorage(): boolean;
clearFromStore(): void;
}, never>;
} & import("@ngrx/signals/src/signal-store-models").EmptyFeatureResult>;
With the error
Type 'EmptyFeatureResult & Input extends infer T ? { [K in keyof T]: (EmptyFeatureResult & Input)[K]; } : never' does not satisfy the constraint 'SignalStoreFeatureResult'.
Type '{}' is missing the following properties from type 'SignalStoreFeatureResult': state, signals, methods(2344)