首页 > 解决方案 > 即使指定了数组类型的打字稿,拼接显示从不

问题描述

我有一个包含数组的接口:

export interface AnimationCanvasState {
  frames: Array<Frame>
}

帧数组 def 的类型为Frame

我将此接口应用于 vuex 状态:

const state: AnimationCanvasState = {
  frames: [],
}


export const animationCanvas: Module<AnimationCanvasState, RootState> = {
  namespaced: true,
  state,
  getters,
  mutations
}

我的问题是当我尝试将数据拼接到突变中的数组中时:

export enum AnimationCanvasMutations {
  ADD_FRAME = "ADD_FRAME"
}

export const mutations: MutationTree<AnimationCanvasState> = {
  [AnimationCanvasMutations.ADD_FRAME] (state, index:number | undefined) {

        if (index !== undefined) {
            state.frames.splice(index, 0, new Frame(8, 8));
        } else {
            state.frames.push(new Frame(8, 8));
        }
  }
}

我收到以下错误: 在此处输入图像描述

我查过这样的错误,所有的解决方案似乎都说“你需要输入你的数组”,但我这样做了。我可以确认state.frames确实输入了:

在此处输入图像描述

在此处输入图像描述

我不明白为什么编译器会在界面中明确键入此数组类型时将其视为永远不会。有什么想法吗?

标签: arraystypescriptgenericsinterfacevuex

解决方案


推荐阅读