typescript - Problem med typer med ts, useStorage (vueuse) och Pinia
Jag får ett konstigt fel i följande kod: Egenskapen 'length' finns inte på typen '{ [RefSymbol]: true; }'.
Men när jag kollar typen av foo i getCount-funktionen säger min IDE att det är av typen Foo[]. Vad gör jag fel?
import { defineStore } from 'pinia';
import { useStorage } from '@vueuse/core';
interface Foo {}
export const useFooStore = defineStore('foo', {
state: () => ({
foo: useStorage('foo', [] as Foo[]),
}),
actions: {
getCount() {
return this.foo.length; //Here's the error
},
},
});
Svar #1
Jag tror att returvärdet av useStorage inte är vad du tror. Jag tror att det returnerar en slags ref, med en value-egenskap som innehåller de faktiska data som lagras.
Försök :
useStorage('jobs', [] as Job[]).value
Svar #2
Nu finns det inte så mycket information i ditt inlägg men utifrån vad felmeddelandet säger skulle jag gissa följande. Du definierar ett objekt med typen
{ [RefSymbol]: true; }
men eftersom längd inte finns på din typ tror jag att en array förväntas för jobb?
