ค้นหาเว็บไซต์

typescript - Pinia useStore คืนค่าเป็น any


ฉันกำลังใช้ Pinia กับ Vue3 และ TypeScript โดยการใช้วิธีการพิมพ์สโตร์หลายแบบ ฉันไม่สามารถทำให้สโตร์ถูกพิมพ์เป็นสิ่งอื่นนอกจาก any ได้

นี่คือการใช้งาน:

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

interface DataStore {
  data: DataT[];
}

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

ทุกที่ที่มีการนำร้านค้านี้ไปใช้ในคอมโพเนนต์ ชนิดค่าที่ส่งกลับของ useDataStore() คือ any ซึ่งไม่ปลอดภัยตามชนิดข้อมูล ฉันจะทำให้ร้านค้าของฉันปลอดภัยตามชนิดข้อมูลได้อย่างไร?

คอมโพเนนต์ Vue ทั้งหมดกำลังใช้ <script lang="ts" setup> และสามารถใช้งานประเภท TS อื่น ๆ ได้สำเร็จในส่วนอื่น ๆ

นี่คือตัวอย่างของวิธีที่มันถูกนำเข้า:

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

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