如何在带有 Typescript 的视图中使用 Vue 单文件组件?

How do I use a Vue single file component in a view with Typescript?

我尝试了很多方法,但总是遇到某种构建或运行时错误。令我有些惊讶的是,经过大量搜索后,我未能找到一个有效的示例或 post。我使用 Vue UI 使用 Typescript 创建了一个新项目,然后创建了以下组件:

<template>
  <div class="navigation">
    BACK | NEXT buttons go here
  </div>
</template>

<script lang="ts">
import { Component, Vue } from "vue-property-decorator";

@Component
export default class BackNext extends Vue {
}
</script>

接下来,我尝试在 .vue 视图文件中使用这个组件,这与我得到的差不多:

<template>
  <div class="question">
    <h1>Personal</h1>
    <back-next />
  </div>
</template>
<script lang="ts">
import { Component, Vue } from "vue-property-decorator";
import BackNext from "../../components/BackNext.vue";
@Component
export default class Personal extends Vue {
  components = {
    'back-next': BackNext
  }
}
</script>

但这失败并出现以下构建错误:

 ERROR  Failed to compile with 11 errors4:22:27 PM

These dependencies were not found:

* core-js/modules/es.object.get-prototype-of in ./node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js
* core-js/modules/es.object.to-string in ./node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js, ./node_modules/@babel/runtime/helpers/esm/typeof.js
* core-js/modules/es.reflect.construct in ./node_modules/@babel/runtime/helpers/esm/createSuper.js, ./node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js
* core-js/modules/es.regexp.to-string in ./node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js
* core-js/modules/es.string.iterator in ./node_modules/@babel/runtime/helpers/esm/typeof.js
* core-js/modules/es.symbol in ./node_modules/@babel/runtime/helpers/esm/typeof.js
* core-js/modules/es.symbol.description in ./node_modules/@babel/runtime/helpers/esm/typeof.js
* core-js/modules/es.symbol.iterator in ./node_modules/@babel/runtime/helpers/esm/typeof.js
* core-js/modules/web.dom-collections.iterator in ./node_modules/@babel/runtime/helpers/esm/typeof.js

To install them, you can run: npm install --save core-js/modules/es.object.get-prototype-of core-js/modules/es.object.to-string core-js/modules/es.reflect.construct core-js/modules/es.regexp.to-string core-js/modules/es.string.iterator core-js/modules/es.symbol core-js/modules/es.symbol.description core-js/modules/es.symbol.iterator core-js/modules/web.dom-collections.iterator

不清楚启用了 Typescript 支持的标准新项目是否需要安装一堆依赖项才能使用一些非常标准的功能,我不想通过安装一堆可能需要也可能不需要的东西。

npm 版本 6.13.4

节点版本 12.16.1

纱线版本 1.22.4

vue 版本@vue/clu 4.5.3

需要在装饰器中注册

import BackNext from "../../components/BackNext.vue";

@Component({
  components: {
    BackNext,
  },
})

export default class Personal extends Vue {
  private dataItems = [];

...