从特定的 node_modules 包中导入 d.ts 定义

时间:2021-04-05 12:12:35

标签: typescript vue.js vuetify.js node-modules shim

我有 vue2 + vuetify + typescript starter app。它有 shims-vuetify.d.ts 文件,内容如下:

declare module 'vuetify/lib/framework' {
  import Vuetify from 'vuetify'
  export default Vuetify
}

然后将其导入到 /plugins/vuetify.ts 文件中,如下所示:

import Vue from 'vue'
import Vuetify from 'vuetify/lib/framework'

Vue.use(Vuetify)

export default new Vuetify({
})

效果很好。

我的目标是在打字稿中扩展一些 vuetify 组件。为此,我正在从 vuetify/src/ 导入打字稿源代码(不是来自 vuetify/lib 的 js 代码):

import VAutocomplete from 'vuetify/src/components/VAutocomplete'

export default VAutocomplete.extend({
  ...my stuff..
}) 

它可以工作,但是 typescript 在编译过程中会抛出很多错误。

它没有看到 node_modules/vuetify/src/globals.d.ts 文件。

问题是:如何让typescript使用这个声明文件?

我想正确的方法是创建 shims-vuetify-src.d.ts 文件并以某种方式在那里引用 globals.d.ts,但现在我无法正确执行此操作。

0 个答案:

没有答案