typescript - Pinia useStore her şeyi döndürüyor


Vue3 ve TypeScript ile Pinia kullanıyorum. Mağazayı tipledmenin birçok farklı yolunu denememe rağmen, mağazanın any dışında başka bir şekilde tiplenmesini sağlayamadım.

İşte uygulanışı:

import { defineStore } from "pinia";
import type { DataT } from "@/types";

interface DataStore {
  data: DataT[];
}

export const useDataStore = defineStore("dataStore", {
  state: (): DataStore => ({
    data: [] as DataT[],
  }),
});

Bu mağaza bir bileşene ithal edildiği her yerde, useDataStore()'un dönüş türü any olup, tip güvenli değildir. Mağazamdan tip güvenliği nasıl elde edebilirim?

Tüm Vue bileşenleri <script lang="ts" setup> kullanıyor ve diğer TS türlerini başka yerlerde başarıyla kullanıyor.

İşte nasıl içe aktarıldığının bir örneği:

<script lang="ts" setup>
// some other imports
import { useDataStore } from "../../store/data";

const dataStore = useDataStore();
// other code follows
</script>