为 Vue 道具创建类型的正确方法是什么

我正在尝试type在 Vue js 中为我的道具创建自定义,我创建了一个类型文件夹并将其添加tsconfig.typeRoots到 IntelliSense 中,所有其他事情都正常工作,编译时没有问题,但是当我访问该组件时,我得到一个错误,Car is not defined但我已经定义了它并且它可以在其他地方工作,但是在检查官方文档后我知道 prop 需要 aconstructor所以我重新定义了类型declare class Car并添加了一个构造函数原型,但同样的问题。

这是文件:汽车组件

<script lang="ts">
import Vue from "vue";

export default Vue.extend({
  name: "the-car",
  props: {
    car: {
      required: true,
      type: Car,
    },
  },
});
</script>

types/common/index.d.ts声明文件

declare class Car {
    name: String;
    image: String;
    kms: Number;
    gears: String;
    desc: String;
    fuel: String;
    engine: String;
    price: Number;
    constructor(name: String, image: String, kms: Number, gears: String, desc: String, fuel: String, engine: String, price: Number);
}
奥利弗·凯普

如果您介意使用 Typescript 接口,那么您可以查看这篇文章

在您的情况下,在创建后Car Interface

props: {
  car: {
    required: true,
    type: Object as () => Car,
  },
},

编辑:

作为@Chin。乌达拉提议。

如果您发现验证器未获得类型推断或成员补全不起作用,则使用预期类型注释参数可能有助于解决这些问题。

import Vue, { PropType } from 'vue'

const Component = Vue.extend({
  props: {
    car: {
      required: true,
      type: Object as PropType<Car>,
    }
  }
})

查看来自 Vue.js 的这个Typescript 支持文档以获取更多信息。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

为该模块添加类型定义的正确方法是什么

为Redux动作定义类型的正确方法是什么?

为内联汇编创建常量池的正确方法是什么?

为Eclipse片段创建JUnit测试的正确方法是什么?

通过Vue可观察为道具?

在Vue中为数据分配道具

在数组中声明时 Vue 道具的类型是什么?

为vue组件创建动态事件

在C中为不同的数据类型分配内存的正确方法是什么?

检查对象是否为类型的正确方法是什么?泛型?

为输入类型文件键入onChange处理程序的正确方法是什么?

为值类型实现运算符++的正确方法是什么?

测试类型是否为分配器的正确方法是什么?

为自定义类型声明UnmarshalJSON的正确方法是什么?

在Doctrine2中为DECIMAL类型定义注释的正确方法是什么

为无状态功能组件提供打字稿类型的正确方法是什么

在Vue.js 2中将道具作为初始数据传递的正确方法是什么?

通过 maven for Spring Boot 应用程序为 AWS Beanstalk 创建 .ebextensions 的正确方法是什么

使用 react hooks 和 typescript 为 action 对象创建接口的正确方法是什么

为本地安装创建自己的软件包的正确方法是什么?

在Rust中为线程或函数创建超时的正确方法是什么?

为TFliteconverter创建代表性数据集的正确方法是什么?

为使用`python -m zipapp`创建的独立应用程序导入模块的正确方法是什么?

为用户创建自定义“项目页面”的正确方法是什么?

联合类型为null或UUID的正确Avro模式是什么

用C语言将较窄的数据类型存储为较宽的数据类型的正确方法是什么?

道具不能完全以Vue.js为食

这不是类型为vue的CombinedVueInstance类型的

在Vue-JS中为不同用户组显示不同菜单的最佳方法是什么?