Vue + TypeScript 覆盖`导出默认 Vue`

Mic*_*son 5 amd typescript vue.js typescript-typings

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

Vue.js 自带的类型定义在 vue/types/index.d.ts 中说明

export default Vue;
Run Code Online (Sandbox Code Playgroud)

但是,这会导致打字稿编译:

import Vue as "vue";
export default Vue.extend({ ... });
Run Code Online (Sandbox Code Playgroud)

基本上,进入这个:

define(["vue"], function(vue) {
  exports.default = vue.default.extend({  ... })
});
Run Code Online (Sandbox Code Playgroud)

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

export = Vue;
Run Code Online (Sandbox Code Playgroud)

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

Mat*_*hen 3

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

正如您所注意到的,Vue 类型声明不准确,但基于上一期,我不知道有关它的新问题是否会受到好评。