Pinia 的状态类型在动作中或外部被破坏

wal*_*lox 5 store typescript vue.js pinia

这里有这家商店:

interface Task {
  id?: string;
  name: string;
  done: boolean;
}

interface TodoState {
  tasks: Task[];
  loading: boolean;
}

export const useTodoStore = defineStore({
  id: 'todo',
  state: (): TodoState => ({
    tasks: [],
    loading: false,
  }),
  getters: {},
  actions: {
    async addTask(name: string): Promise<void> {
      this.loading = true;
      this.tasks.push({ name, done: false, id: generateID() });
      await sleep(200);
      this.loading = false;
    },
  },
});
Run Code Online (Sandbox Code Playgroud)

我不明白为什么当我将鼠标悬停在操作中的“任务”时,其类型不是 Task[] 但我得到

(property) tasks: {
    id?: string | undefined;
    name: string;
    done: boolean;
}[]
Run Code Online (Sandbox Code Playgroud)

如果需要的话,这是 stackblitz 中的代码

当我在商店外接到任务时,也会出现同样的问题。以组件为例。