diff --git a/src/config.ts b/src/config.ts index 4726ae4c..2a40dbf6 100644 --- a/src/config.ts +++ b/src/config.ts @@ -275,7 +275,7 @@ function decodeStoredItem(id: string, data: T): T | SBMap { for (const key in changes) { Config.localConfig[key] = decodeStoredItem(key, changes[key].newValue); @@ -286,8 +286,8 @@ function configProxy(): any { } }); - const handler: ProxyHandler = { - set(obj, prop, value) { + const handler: ProxyHandler = { + set(obj: SBConfig, prop: K, value: SBConfig[K]) { Config.localConfig[prop] = value; chrome.storage.sync.set({ @@ -297,13 +297,13 @@ function configProxy(): any { return true; }, - get(obj, prop): any { + get(obj: SBConfig, prop: K): SBConfig[K] { const data = Config.localConfig[prop]; return obj[prop] || data; }, - deleteProperty(obj, prop) { + deleteProperty(obj: SBConfig, prop: keyof SBConfig) { chrome.storage.sync.remove( prop); return true; @@ -311,7 +311,7 @@ function configProxy(): any { }; - return new Proxy({handler}, handler); + return new Proxy({handler} as unknown as SBConfig, handler); } function fetchConfig(): Promise {