Mic*_*oße 5 migration typescript vue.js vuejs2 vuejs3
我们正在将带有 TypeScript 的 Vue 2 应用程序迁移到 Vue 3。由于该应用程序相当大,我们需要使用@vue/compat以便能够一次一步地迁移我们的应用程序。
然而,当严格遵循官方迁移指南时,我们在使用类型时遇到了问题VueConstructor:
error in src/presentation/App.vue:43:25
TS2614: Module '"vue"' has no exported member 'VueConstructor'. Did you mean to use 'import VueConstructor from "vue"' instead?
41 |
42 | <script lang="ts">
> 43 | import Vue, { PropType, VueConstructor } from 'vue';
| ^^^^^^^^^^^^^^
44 | import { EventEmitter } from 'events';
45 | import WarningAnonymousEdit from '@/presentation/components/WarningAnonymousEdit.vue';
46 | import Events from '@/events';
Run Code Online (Sandbox Code Playgroud)
它在 Vue2 应用程序中的使用方式如下:
export default ( Vue as VueConstructor<Vue & InstanceType<typeof StateMixin>> ).extend( {
mixins: [ StateMixin ],
name: 'App',
computed: {
isSaving(): boolean {
// methods on ExampleMixin are now known to TypeScript as existing on `this`
return this.isMethodOnMixin();
},
},
// [...]
} );
Run Code Online (Sandbox Code Playgroud)
上面的代码在 Vue 2 中工作得很好,并且允许 TypeScript 知道 上的方法StateMixin在该类上也可用。
关于如何使其与 Vue3 迁移构建一起工作有什么建议吗?
PS:问题#4330相关,但没有真正帮助
PPS:这个问题过去也询问过PropType不被导出'vue',但通过升级到 TypeScript 4 解决了这个问题。
| 归档时间: |
|
| 查看次数: |
1402 次 |
| 最近记录: |