Vue + TypeScript 覆盖 `export default Vue`

Vue + TypeScript override `export default Vue`

我正在尝试使用 Vue 和 TypeScript。我正在尝试在我的 tsconfig 中编译为 AMD。

Vue.js附带的类型定义在vue/types/index.d.ts

export default Vue;

然而,这会导致打字稿编译这个:

import Vue as "vue";
export default Vue.extend({ ... });

本质上,是这样的:

define(["vue"], function(vue) {
  exports.default = vue.default.extend({  ... })
});

注意,它认为 vue 应该有一个 属性 .default,但它没有。无论如何要编写一个类型定义来覆盖默认的 vue 类型定义,该定义类似于:

export = Vue;

或者 tsconfig 中的一些标志告诉打字稿不要将 .default 属性 添加到编译的 AMD 模块中?

启用 esModuleInterop 编译器选项将使 TypeScript 生成代码以在运行时检查 vuevue.default

如您所见,Vue 类型声明不准确,但基于this previous issue,我不知道关于它的新问题是否会受到欢迎。