Esta es mi store.tsx :
let store = {}; const globalStore = {}; globalStore.set = (key: string, value: string) => { store = { ...store, [key]: value }; } globalStore.get = (key) => { return store[key]; } export default globalStore;Y lo uso:
import globalStore from './library/store'; function MyApp({ Component, pageProps }: AppProps) { globalStore.set('cookie', pageProps.cookies); return <Component {...pageProps} /> }Pero me sale este error:
La propiedad 'set' no existe en el tipo '{}'.ts
Mi código funciona bien, pero no quiero recibir ningún error.
En realidad, quiero almacenar mis datos en variables y usarlos desde otro componente.
Bueno, básicamente declaraste el tipo de la variable como {} , y no puedes cambiar eso fácilmente después del hecho.
Por lo tanto, debe declarar las funciones dentro del objeto para que TypeScript pueda inferir el tipo correcto de GlobalStore (con los métodos):
const store: Record<string, string> = {}; const GlobalStore = { set: (key: string, value: string) => { store[key] = value; }, get: (key: string): string => { return store[key]; } } export default GlobalStore; El tipo correcto de GlobalStore sería (en oposición al {} que tiene actualmente):
interface GloabStore { set(key: string, value: string): void; get(key: string): string; } Y, por cierto, lo que está implementando es básicamente un Map (Hash), así que creo que podría hacer:
const GlobalStore = new Map<string, string>(); export default GlobalStore;