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>