【问题标题】:'Parameter 'props' implicitly has an 'any' type' - Vue 2, composition API problem\'Parameter \'props\' implicitly has an \'any\' type\' - Vue 2,组合 API 问题
【发布时间】:2022-11-18 00:06:14
【问题描述】:

在尝试将 TypeScript 添加到现有 Vue 2.6 项目后,我遇到了困难。 由于遗留原因,它必须保留在版本 2。

我遇到的错误发生在多个组件上,如下所示:

Parameter 'props' implicitly has an 'any' type.

这是我的代码:

<script lang="ts">
import { reactive, computed } from "vue";

export default {
  name: "Avatar",

  props: {
    title: {
      type: String,
      default: "my title",
    },
    alt: {
      type: Boolean,
      default: false,
    },
    size: {
      type: String,
      default: "regular",
    },
  },

  setup(props) {
    props = reactive(props);
    return {
      classes: computed(() => ({
        avatar: props.title,
        "avatar--alt": props.alt,
        "avatar--small": props.size == "small",
      })),
    };
  },
};
</script>

问题出现在包含setup(props) { 的行上。

尽管在设置中将类型 any 添加到 props 可以消除错误,但我知道这不是正确的解决方案。

你对这个问题有什么建议或解决办法吗?

【问题讨论】:

  • Vue 2.0 没有内置的 Composition Api 支持。使用这个包github.com/vuejs/composition-api
  • 您可以查看typescript option-api 以获取有关声明组件和语法糖的更多信息。 Vue 的文档非常好。
  • 哦抱歉需要将此信息添加到我的问题中,已经添加了组合 api 插件:/

标签: typescript vue.js vuejs2


【解决方案1】:

Vue 2.6 默认没有组合 api,我建议升级到包含它的 vue 2.7:

https://blog.vuejs.org/posts/vue-2-7-naruto.html

如果那不可能并且您使用的是vue 2 composition api plugin,请检查您使用的是正确的导入:

// use the APIs
import { ref, reactive } from '@vue/composition-api'

【讨论】:

    猜你喜欢
    • 2023-01-13
    • 1970-01-01
    • 2022-12-27
    • 2018-08-23
    • 2021-10-04
    • 2022-12-19
    • 1970-01-01
    • 2023-01-30
    • 1970-01-01
    相关资源
    最近更新 更多