Vue3 + Typescript 中使用 Vuex:

const book = {
  ...
  actions: {
    mergeBook({ state, commit }, data: any) {
      return axios.patch(`/books/merge`, data)
        .then((res: any) => {
          return res;
        });
    }
  },
};

报如下错误:Binding element 'state' implicitly has an ‘any’ type.

在这里插入图片描述
在typescript的编译过程中,函数的参数被提示 {变量名} implicitly has an ‘any’ type,但是笔者也不知道应该指明他为什么类型的参数。

”不知道“有三种情况:

  • 我不知道它具体是什么,但它一定有某某属性:用字面量声明类型,{ x: string }
  • 我不确定它有什么属性,之后我会用if再仔细判断:声明为unknown类型
  • 我自己有数,你别管了:声明为any类型

笔者首先选择了第三种解决方法,即声明为any类型

mergeBook({ state, commit }: { state: any, commit: any }, data: any) {
  ...
}

第二种解决方法简单粗暴,直接关闭这个校验规则:tsconfig.json 中 添加"noImplicitAny": false,
tsconfig.json

Logo

前往低代码交流专区

更多推荐